字符串置换

题:

  

解:

  这道题比较简单,不知道是不是我理解错题意了。

  我的思路是将两个字符串分割并保存到数组里面,再由数组保存到集合里面,最后对两个集合进行排序并判断相同索引下的字符是否相同。

代码:

 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 }

 

posted @ 2017-06-24 16:00  南橘  阅读(279)  评论(0编辑  收藏  举报
蜘蛛