Leetcode:1616. 分割兩個字串得到迴文串
1616. 分割兩個字串得到迴文串
題意:兩個等長的字串a、b,在同一個位置切割得到 a p r e f i x , a s u f f i x , b p r e f i x , b s u f f i x a_{prefix}, a_{suffix}, b_{prefix}, b_{suffix} aprefix,asuffix,bprefix,bsuffix , 組 合 得 到 ,組合得到 ,組合得到 a p r e f i x + b s u f f i x 和 b p r e f i x + a s u f f i x a_{prefix} + b_{suffix}和b_{prefix} + a_{suffix} aprefix+bsuffix和bprefix+asuffix兩個字串,這兩個字串中是否存在迴文串。
吐槽:競賽時沒有抓住題目的本質,在這裡吊了一小時(還是太菜了)
思路:迴文串的題目一定要抓本質,即迴文。有4種情況要討論:
- a的前半部分與b的後半部分匹配,某一處開始不能匹配
- a的前半部分+a的剩餘部分+b的後半部分能否構成迴文串
- a的前半部分+b的剩餘部分+b的後半部分能否構成迴文串
- b的前半部分與a的後半部分匹配,某一處開始不能匹配
- b的前半部分+a的剩餘部分+a的後半部分能否構成迴文串
- b的前半部分+b的剩餘部分+a的後半部分能否構成迴文串
程式碼
class Solution {
public boolean checkPalindromeFormation(String a, String b) {
return check(a, b) || check(b, a);
}
private boolean check(String a, String b){
for(int i = 0, j = a.length() - 1; i < j; i++, j--){
if(a.charAt(i) != b.charAt(j)){
return extend(a, i, j) || extend(b, i, j);
}
}
return true;
}
private boolean extend(String a, int l, int r){
for(int i = l, j = r; i < j; i++, j--){
if(a.charAt(i) != a.charAt(j))
return false;
}
return true;
}
}
相關文章
- (迴文串)leetcode各種迴文串問題LeetCode
- Leetcode[字串] 5. 最長迴文子串LeetCode字串
- 今日面試題:最長迴文子串;及迴文分割分析面試題
- LeetCode - 409 - 最長迴文串LeetCode
- 動態規劃題:把一個字串變為迴文串動態規劃字串
- 演算法-兩最長迴文子串演算法
- LeetCode 5.最長迴文子串LeetCode
- LeetCode125. 驗證迴文串LeetCode
- 演算法之字串——最長迴文子串演算法字串
- 判斷迴文串 字串/數字相互轉換字串
- LeetCode-5. 最長迴文子串(Manacher)LeetCode
- 兩個字串的最長公共子串字串
- 翻譯數字串;及最長迴文子串分析字串
- leetcod 131.分割回文串(回溯、迴文字串)字串
- 計算兩個字串最大公有子串字串
- 每日一道 LeetCode (48):最長迴文子串LeetCode
- [LeetCode] Longest Palindromic Substring 最長迴文子串LeetCode
- leetcode------分割回文串LeetCode
- Leetcode 344:驗證迴文串(最詳細解決方案!!!)LeetCode
- java 最長迴文子串Java
- 得到字串 位元組 長度 中文 兩個字元 英文一個字元字串字元
- Leetcode5: Longest Palindromic Substring(最長迴文子串)LeetCode
- 第五章 字串專題 ---------------- 5.10 題解:神奇的迴文串字串
- leedcode-最長迴文串
- LeetCode-131-分割回文串LeetCode
- 從0打卡leetcode之day 6--最長迴文串LeetCode
- Python連線兩個字串並去除首尾重複子串Python字串
- 常用演算法之驗證迴文串演算法
- LEECODE 5 求最長迴文子串
- LeetCode 分割回文串II(動態規劃)LeetCode動態規劃
- C語言:判斷一個字串是否為迴文C語言字串
- 求迴文子序列個數(雖然字串,但是DP)字串
- 迴文分割;及刪除字元分析字元
- LeetCode-824. Goat Latin(字串分割)LeetCodeGo字串
- leetcode 1525 字串的好分割數目(雜湊表,字串分割)LeetCode字串
- [動態規劃] 六、最長迴文子串動態規劃
- Amazon面試題:尋找最長迴文子串面試題
- LeetCode迴文數(Python)LeetCodePython