算法--词语变形问题
2017-03-14 20:51
113 查看
转载请标明出处http://www.cnblogs.com/haozhengfei/p/67679362ce83ca1bef4ecef5901552dc.html
词语变形练习
给定两个字符串A和B及他们的长度,请返回一个bool值,代表他们是否互为变形词。
测试样例:
Java (javac 1.7)
代码自动补全
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
您的代码已保存
答案正确:恭喜!您提交的程序通过了所有的测试用例
运行
词语变形问题
词语变形练习
第3节 词语变形练习题
对于两个字符串A和B,如果A和B中出现的字符种类相同且每种字符出现的次数相同,则A和B互为变形词,请设计一个高效算法,检查两给定串是否互为变形词。给定两个字符串A和B及他们的长度,请返回一个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
}
您的代码已保存
答案正确:恭喜!您提交的程序通过了所有的测试用例
运行
相关文章推荐
- 【算法学习笔记】56.区间合并问题变形 SJTU OJ 1365 最少道路
- 【算法】逆序对问题的四种解法(归并排序,BST,树状数组,线段树)及变形
- 词语搜索算法思想 - 第一步 问题描述
- 算法编程题-字符串互为变形词问题
- [算法]字符串之变形词问题
- 蓝桥杯 算法提高 拿糖果【变形的背包问题】
- 【杭电OJ】 汉诺塔问题及其变形算法分析
- 词语变形 -- 算法小结
- [转]算法讨论:哲学家就餐问题
- 一个小的算法问题解决
- TSP问题的贪婪算法
- 几个算法的问题
- 伴随开发人员成长的问题:工程重要,还是算法重要?细节重要,还是架构重要?
- 算法的问题
- 伴随开发人员成长的问题:工程重要,还是算法重要?细节重要,还是架构重要?
- 5位哲学家吃饭问题(算法描述)
- 平面图形任意变形问题的解决方案
- [公告]积分算法问题改正
- 一个算法问题的解决
- [梦里原创]关于猫和老鼠的问题(程序算法)