您的位置:首页 > 其它

算法--词语变形问题

2017-03-14 20:51 113 查看
转载请标明出处http://www.cnblogs.com/haozhengfei/p/67679362ce83ca1bef4ecef5901552dc.html

词语变形问题





词语变形练习

第3节 词语变形练习题

对于两个字符串A和B,如果A和B中出现的字符种类相同且每种字符出现的次数相同,则A和B互为变形词,请设计一个高效算法,检查两给定串是否互为变形词。

给定两个字符串AB及他们的长度,请返回一个bool值,代表他们是否互为变形词。

测试样例:
"abc",3,"bca",3

返回:true


Java (javac 1.7)
代码自动补全

1

import java.util.*;


2



3

public class Transform {


4

public boolean chkTransform(String A, int lena, String B, int lenb) {


5

if(A == null || B == null || A.length() != B.length()) {


6

return false;


7

}


8

char[] ch1 = A.toCharArray();


9

char[] ch2 = B.toCharArray();


10

int[] map = new int[65535];//java中字符的范围是0~65535


11

for(int i =0; i<ch1.length; i++){


12

map[ch1[i]]++;//比如a对应的ASCII码是97,那么map[97]++


13

}


14

for(int i=0; i<ch2.length; i++) {


15

if(map[ch2[i]]-- == 0){


16

    return false;//如果字符B中的字符在map数组中对应为0,返回false


17

}


18

}


19

return true;


20

}


21

}


您的代码已保存
答案正确:恭喜!您提交的程序通过了所有的测试用例

运行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: