校招准备系列:每天一道算法题(2)
PS:买的《程序员面试金典》,所以从现在开始每天刷一两道题,坚持到下半年校招,希望自己的算法能力有一个长足的提高,以在校招中能找到一份好的工作!
1.3、给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。
思路分析:对于这个问题,首先考虑的是题目中的重新排列后的变位词比较是否区分大小写,是否需要考虑空白的情况。。。
方法:排序,然后比较
public static String sort(String s){
char[] content = s.toCharArray();
java.util.Arrays.sort(content);
return new String(content);
}
public static boolean permutation(String s,String t){
if(s.length()!=t.length()){
return false;
}
return sort(s).equals(sort(t));
}
写出完整测试代码如下:
package chen.zhou.chous;
public class Pdzfc {
public static void main(String[] args) {
String s = "hello";
String t = "olleh ";
if(permutation(s, t)){
System.out.println("经过重新排列后,能变成另外一个字符串");
}else {
System.out.println("不能!");
}
}
public static String sort(String s){
char[] content = s.toCharArray();
java.util.Arrays.sort(content);
return new String(content);
}
public static boolean permutation(String s,String t){
if(s.length()!=t.length()){
return false;
}
return sort(s).equals(sort(t));
}
}
结束语:坚持每一天,继续努力!!!