字符串置换
题:
解:
这道题比较简单,不知道是不是我理解错题意了。
我的思路是将两个字符串分割并保存到数组里面,再由数组保存到集合里面,最后对两个集合进行排序并判断相同索引下的字符是否相同。
代码:
1 package com.lintcode; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.List; 6 import java.util.Scanner; 7 8 /** 9 * 字符串置换 10 * 给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换。 11 * 置换的意思是,通过改变顺序可以使得两个字符串相等。 12 * @author Administrator 13 */ 14 public class Test_005 { 15 //将两个字符串分割,再存到集合里面排序,最后判断。 16 /** 17 * @param args 18 */ 19 public static void main(String[] args) { 20 Scanner input = new Scanner(System.in); 21 String a = input.next(); 22 String b = input.next(); 23 System.out.println(stringPermutation(a,b)); 24 } 25 /** 26 * @param A a string 27 * @param B a string 28 * @return a boolean 29 */ 30 public static boolean stringPermutation(String A, String B) { 31 if (A.length()!=B.length()) { 32 return false; 33 } 34 String[] a = A.split(""); 35 List<String> lista = new ArrayList<String>(); 36 String[] b = B.split(""); 37 List<String> listb = new ArrayList<String>(); 38 for (int i = 0; i < b.length; i++) { 39 lista.add(a[i]); 40 listb.add(b[i]); 41 } 42 Collections.sort(lista); 43 Collections.sort(listb); 44 boolean result = true; 45 for (int i = 0; i < lista.size(); i++) { 46 if (!lista.get(i).equals(listb.get(i))) { 47 result = false; 48 break; 49 } 50 } 51 return result; 52 } 53 }
欢迎提出意见或建议!!!