首页 > 代码库 > 字符串置换

字符串置换

题:

  技术分享

解:

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

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

代码:

 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 Administrator13  */14 public class Test_005 {15     //将两个字符串分割,再存到集合里面排序,最后判断。16     /**17      * @param args18      */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 string27      * @param B a string28      * @return a boolean29      */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 }

 

字符串置换