Re: [閒聊] 每日leetcode
看板Marginalman作者Rushia (早瀬ユウカの体操服 )時間10月前 (2025/02/05 15:39)推噓1(1推 0噓 0→)留言1則, 1人參與討論串1322/1552 (看更多)
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
推
02/05 15:41,
10月前
, 1F
02/05 15:41, 1F
討論串 (同標題文章)
完整討論串 (本文為第 1322 之 1552 篇):