LeetCode 1616. 分割两个字符串得到回文串
文章目錄
- 1. 題目
- 2. 解題
1. 題目
給你兩個(gè)字符串 a 和 b ,它們長(zhǎng)度相同。
請(qǐng)你選擇一個(gè)下標(biāo),將兩個(gè)字符串都在 相同的下標(biāo) 分割開。
由 a 可以得到兩個(gè)字符串: aprefix 和 asuffix ,滿足 a = aprefix + asuffix ,同理,由 b 可以得到兩個(gè)字符串 bprefix 和 bsuffix ,滿足 b = bprefix + bsuffix 。
請(qǐng)你判斷 aprefix + bsuffix 或者 bprefix + asuffix 能否構(gòu)成回文串。
當(dāng)你將一個(gè)字符串 s 分割成 sprefix 和 ssuffix 時(shí), ssuffix 或者 sprefix 可以為空。
比方說, s = "abc" 那么 "" + "abc" , "a" + "bc" , "ab" + "c" 和 "abc" + "" 都是合法分割。
如果 能構(gòu)成回文字符串 ,那么請(qǐng)返回 true,否則返回 false 。
請(qǐng)注意, x + y 表示連接字符串 x 和 y 。
示例 1: 輸入:a = "x", b = "y" 輸出:true 解釋:如果 a 或者 b 是回文串,那么答案一定為 true ,因?yàn)槟憧梢匀缦路指?#xff1a; aprefix = "", asuffix = "x" bprefix = "", bsuffix = "y" 那么 aprefix + bsuffix = "" + "y" = "y" 是回文串。示例 2: 輸入:a = "ulacfd", b = "jizalu" 輸出:true 解釋:在下標(biāo)為 3 處分割: aprefix = "ula", asuffix = "cfd" bprefix = "jiz", bsuffix = "alu" 那么 aprefix + bsuffix = "ula" + "alu" = "ulaalu" 是回文串。提示: 1 <= a.length, b.length <= 105 a.length == b.length a 和 b 都只包含小寫英文字母來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/split-two-strings-to-make-palindrome
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
2. 解題
class Solution { public:bool checkPalindromeFormation(string a, string b) {int l = 0, r = a.size()-1;while(l < r && a[l] == b[r])//先找出a的前綴 和 b的后綴的逆序 相同的{l++, r--;}if(ispalind(a.substr(l, r-l+1)) || ispalind(b.substr(l, r-l+1)))return true;l = 0, r = a.size()-1;while(l < r && b[l] == a[r])// 找出b的前綴 和 a的后綴的逆序 相同的{l++, r--;}if(ispalind(a.substr(l, r-l+1)) || ispalind(b.substr(l, r-l+1)))return true;return false;}bool ispalind(string s){int l = 0, r = s.size()-1;while(l < r){if(s[l++] != s[r--])return false;}return true;} };256 ms 28.4 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
長(zhǎng)按或掃碼關(guān)注我的公眾號(hào)(Michael阿明),一起加油、一起學(xué)習(xí)進(jìn)步!
總結(jié)
以上是生活随笔為你收集整理的LeetCode 1616. 分割两个字符串得到回文串的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 996. 正方形数组的
- 下一篇: LeetCode MySQL 618.