给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串
1 /* 2 * 给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串,其实也就是变位词问题 3 * 比如说 a='abc' b='acb'是可以通过a变成b的 4 * 思路; 5 * 1.应进行分析,变位词区分大小写吗?比如God和dog是变位词?还需要考虑空格问题? 6 * 在这里我们假定是区分大小写的。 7 * 2.比较两个字符串时,如果它们的长度都不相等了,那肯定不是变位词 8 * 9 * 10 * */ 11 12 public class IsSameString { 13 14 public static void main(String[] args) { 15 // TODO Auto-generated method stub 16 String s="abcd"; 17 String t="dcba"; 18 IsSameString iss=new IsSameString(); 19 boolean flag=iss.permutation(s, t); 20 if(flag) 21 System.out.println("变位词"); 22 else 23 System.out.println("不是变位词"); 24 25 } 26 /* 27 * 如果两个是变位词的关系,那么它们都拥有相同的字符,只不过顺序不同, 28 * 对它们进行排序的话,会得到相同的字符串顺序 29 * 可以利用这一点进行判断 30 * 31 * */ 32 public String sort(String s) 33 { 34 char[] content = s.toCharArray(); 35 java.util.Arrays.sort(content); 36 return new String(content); 37 } 38 public boolean permutation(String s,String t) 39 { 40 if(s.length()!=t.length()) 41 return false; 42 return sort(s).equals(sort(t)); 43 } 44 45 46 47 }
posted on 2014-09-03 13:19 daocaorendeshijie 阅读(1631) 评论(0) 编辑 收藏 举报