給定兩個由小寫字母構成的字串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
0 <= a.length <= 20000
0 <= b.length <= 20000
a
和b
僅由小寫字母構成。
思路:分幾種情況考慮:
長度不相等,肯定不滿足。
兩個空字串,肯定不滿足。
其中有兩處不一樣,進行轉移,看轉移後是否一樣。
其中兩個字串相等,則看字串中,是否有1個字元出現次數大於等於2次,這樣能滿足2次的交換。
其他情況,count > 2, 均為false。
class solution
}if(count == 2) // 當有兩次不相等時,交換之後,判斷是否相等。
return false;
}// 判斷乙個字元是否出現過大於等於2次。
bool istwo(string str)
}return false;}};
LeetCode 859 親密字串
題目描述 給定兩個由小寫字母構成的字串 a 和 b 只要我們可以通過交換 a 中的兩個字母得到與 b 相等的結果,就返回 true 否則返回 false 輸入示例1 輸入 a ab b ba 輸出 true 輸入示例2 輸入 a ab b ab 輸出 false 輸入示例3 輸入 a aa b aa...
LeetCode(859 親密字串)
如題 審題很重要哦,著重注意是存在差異的話是有僅有一對並且相同時存在重複字元也是可以的 public static boolean buddystrings string a,string b char a u0000 對於差異點的備份 char b u0000 int flag 0 出現差異的位置...
Leetcode 859 親密字串
給定兩個由小寫字母構成的字串 a 和 b 只要我們可以通過交換 a 中的兩個字母得到與 b 相等的結果,就返回 true 否則返回 false 示例 1 輸入 a ab b ba 輸出 true 示例 2 輸入 a ab b ab 輸出 false 示例 3 輸入 a aa b aa 輸出 true...