Lintcode 比較字符串

比較兩個字符串A和B,確定A中是否包含B中所有的字符。字符串A和B中的字符都是大寫字母

 

樣例

給出 A = "ABCD" B = "ACD",返回 true

給出 A = "ABCD" B = "AABC", 返回 false

注意

在 A 中出現的 B 字符串裏的字符不需要連續或者有序。

解題思路:

首先將字符串A,B轉換爲字符數組,並對字符數組進行排序,得到有序的字符數組。然後利用兩根指針查找A,B字符數組中相同的字符,並記錄相同字符的長度length。如何得到的長度length與字符串B的長度相同,那麼A中包含B中所有的字符,否則A中不包含B中所有的字符。

 

public class Solution {
    /**
     * @param A : A string includes Upper Case letters
     * @param B : A string includes Upper Case letter
     * @return :  if string A contains all of the characters in B return true else return false
     */
    public boolean compareStrings(String A, String B) {
        // write your code here
        char[] ch1 = A.toCharArray();
        char[] ch2 = B.toCharArray();
        int i=0;
        int j=0;
        int flag =0;
        
        Arrays.sort(ch1);
        Arrays.sort(ch2);
        
        if(B == null || B.length() <= 0)
        return true;
        else{
             while(i < ch1.length&&j<ch2.length){
               if(ch1[i] == ch2[j]) {
                   i++;
                   j++;
                   flag++;
               }
               else
               if(ch1[i] >ch2[j]){
                   j++;
               }
               else{
                   i++;
               }
       }
       
       if(flag == ch2.length)
             return true;
       else 
             return false;
        }
    }
}

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章