C 演算法學習 力扣 859 親密字串

2021-10-10 13:45:03 字數 1404 閱讀 9419

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

交換字母的定義是取兩個下標 i 和 j (下標從 0 開始),只要 i!=j 就交換 a[i] 和 a[j] 處的字元。例如,在 「abcd」 中交換下標 0 和下標 2 的元素可以生成 「cbad」 。

示例 1:

輸入: a =

"ab"

, b =

"ba"

輸出: true

解釋: 你可以交換 a[0]

='a' 和 a[1]

='b' 生成 "ba",此時 a 和 b 相等。

示例 2:

輸入: a =

"ab"

, b =

"ab"

輸出: false

解釋: 你只能交換 a[0]

='a' 和 a[1]

='b' 生成 "ba",此時 a 和 b 不相等。

示例 3:

輸入: a =

"aa"

, b =

"aa"

輸出: true

解釋: 你可以交換 a[0]

='a' 和 a[1]

='a' 生成 "aa",此時 a 和 b 相等。

示例 4:

輸入: a =

"aaaaaaabc"

, b =

"aaaaaaacb"

輸出: true

示例 5:

輸入: a =

"", b =

"aa"

輸出: false

0 <= a.length <= 20000

0 <= b.length <= 20000

a 和 b 僅由小寫字母構成。

拿到這個題,我就想= =直接寫,把所有條件a和b有乙個不同,兩個不同,三個不同都列出來就好啦。

class

solution

//當有兩個以上不同或乙個不同

if(a.

size()

>2)

return0;

//當有兩個不同

else

if(a.

size()

==2&&(a[a[0]

]==b[a[1]

]&& a[a[1]

]==b[a[0]

]))return1;

//當沒有不同

else

if(a.

empty()

)return0;

}};

力扣刷題記錄 字串 簡單 859親密字串

給定兩個由小寫字母構成的字串 a 和 b 只要我們可以通過交換 a 中的兩個字母得到與 b 相等的結果,就返回 true 否則返回 false 輸入 a ab b ba 輸出 true 輸入 a ab b ab 輸出 false 輸入 a aa b aa 輸出 true 輸入 a aaaaaaabc...

859 親密字串

2020 02 05 1.題目描述 返回能否通過交換 a 中的兩個字母得到與 b 相等的結果2.題解 通過交換的字母可以是相同和不同兩種情況得到以下的分析結果 分為兩種情況,兩個字串相等或者不相等。如果相等的話,那麼看字串中是否出現次數為兩個 或兩個以上的字母,如果有就返回true,否則返回fals...

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...