推 Meaverzt: 大師 02/05 15:41
https://leetcode.com/problems/check-if-one-string-swap-can-make-strings-equal
1790. Check if One String Swap Can Make Strings Equal
給你兩個長度相同的字串,判斷兩個字串是否可以透過交換至多一個字元相等。
思路:
1.找到s1左邊第一個不同的位置和s2右邊第一個不同的位置,如果他們不能交換後相等
返回false。
2.否則檢查s1和s2中間的字元是否相同。
我怎麼寫的那麼醜阿
Java Code:
-----------------------------------------------
class Solution {
public boolean areAlmostEqual(String s1, String s2) {
int n = s1.length();
int i = 0;
while (i < n && s1.charAt(i) == s2.charAt(i)) {
i++;
}
if (i >= n) {
return true;
}
int j = n - 1;
while (j >= 0 && s1.charAt(j) == s2.charAt(j)) {
j--;
}
if (s1.charAt(i) != s2.charAt(j) || s1.charAt(j) != s2.charAt(i)) {
return false;
}
while (++i < j) {
if (s1.charAt(i) != s2.charAt(i)) {
return false;
}
}
return true;
}
}
-----------------------------------------------
--
https://i.imgur.com/yRXNquY.jpeg
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.158.101.161 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1738741197.A.AB1.html