LeetCode每日一練(6)

1.給定兩個由小寫字母構成的字符串 A 和 B ,只要我們可以通過交換 A 中的兩個字母得到與 B 相等的結果,就返回 true ;否則返回 false 。

示例 1:

輸入: A = "ab", B = "ba"
輸出: true
示例 2:

輸入: A = "ab", B = "ab"
輸出: false
示例 3:

輸入: A = "aa", B = "aa"
輸出: true
示例 4:

輸入: A = "aaaaaaabc", B = "aaaaaaacb"
輸出: true
示例 5:

輸入: A = "", B = "aa"
輸出: false

class Solution{
    public static boolean buddyStrings(String A, String B) {
        int lenA = A.length();
        int lenB = B.length();
        int count = 0;//統計AB 兩個字符串裏面包含多少不一樣的字符
        if(lenA == lenB){
            if(lenA == 0){
                return false;
            }
        	char tmp;
        	int[] t = new int[3];  // 如果A與B不相等的字符個數超過兩個就退出
        	int k = 0;
            for(int i = 0;i<lenA;i++){
                if(A.charAt(i) != B.charAt(i)){
                    count++;
                    t[k++] = i;
                    if(k==3){
                    	break;
                    }          
                }
            }
            if(count == 2 ){// A與B中包含不相等的字符有兩個,就把這個部分拿出來,換位置比較
            	String str1 = A.substring(t[0], t[0]+1)+A.substring(t[1], t[1]+1);
            	String str2 = B.substring(t[1], t[1]+1)+B.substring(t[0], t[0]+1);
            	if(str1.equals(str2)){
            		return true;
            	}else{
            		return false;
            	}
            }else if(count == 0){//如果兩個字符串相等,判斷裏面有沒用重複的元素
                char[] elements = A.toCharArray(); 
            	for(char e:elements){
                    if(A.indexOf(e)!=A.lastIndexOf(e)){
                        return true;
                    }
                }
            	return false;
            }else{
            	return false;
            }
        }
        return false;
    }   
}

2.給定一個僅包含大小寫字母和空格 ' ' 的字符串 s,返回其最後一個單詞的長度。如果字符串從左向右滾動顯示,那麼最後一個單詞就是最後出現的單詞。

如果不存在最後一個單詞,請返回 0 。說明:一個單詞是指僅由字母組成、不包含任何空格字符的 最大子字符串。

class Solution {
    public int lengthOfLastWord(String s) {
        int len = s.length();
        if(len > 0){
            String[] ss = s.split(" ");//使用split函數,並且判斷字符串數組是否爲空
            if(ss.length > 0){
                return ss[ss.length-1].length();  
            }else{
                return 0;
            }
        }
        return 0;
    }
}

 

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