給你兩個字串 a 和 b ,它們長度相同。請你選擇乙個下標,將兩個字串都在 相同的下標 分割開。由 a 可以得到兩個字串: aprefix 和 asuffix ,滿足 a = aprefix + asuffix ,同理,由 b 可以得到兩個字串 bprefix 和 bsuffix ,滿足 b = bprefix + bsuffix 。請你判斷 aprefix + bsuffix 或者 bprefix + asuffix 能否構成回文串。
當你將乙個字串 s 分割成 sprefix 和 ssuffix 時, ssuffix 或者 sprefix 可以為空。比方說, s = "abc" 那麼 "" + "abc" , "a" + "bc" , "ab" + "c" 和 "abc" + "" 都是合法分割。
如果 能構成回文字串 ,那麼請返回 true,否則返回 false 。
請注意, x + y 表示連線字串 x 和 y 。
示例 1:
輸入:a = "x", b = "y"
輸出:true
解釋:如果 a 或者 b 是回文串,那麼答案一定為 true ,因為你可以如下分割:
aprefix = "", asuffix = "x"
bprefix = "", bsuffix = "y"
那麼 aprefix + bsuffix = "" + "y" = "y" 是回文串。
示例 2:
輸入:a = "ulacfd", b = "jizalu"
輸出:true
解釋:在下標為 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 都只包含小寫英文本母
第一次用雙指標判別a的開頭和b的結尾構成回文的部分,如果此時l == r, 那ok,如果沒有。再用所獲得的l 和 r 對a 、 b的剩餘部分進行判別,判別是否是回文串。
class solution
return check2(a, l, r) || check2(b, l, r);
}bool check2(string s, int l, int r)
l++;
r--;
}return true;
}bool checkpalindromeformation(string a, string b)
};
1616 分割兩個字串得到回文串
題目描述 給你兩個字串 a 和 b 它們長度相同。請你選擇乙個下標,將兩個字串都在 相同的下標 分割開。由 a 可以得到兩個字串 aprefix 和 asuffix 滿足 a aprefix asuffix 同理,由 b 可以得到兩個字串 bprefix 和 bsuffix 滿足 b bprefix...
連線兩個字串
include include void main char lianjie char a 30 char b 30 原型 extern char strcat char dest,char src 用法 include 功能 把src所指字串新增到dest結尾處 覆蓋dest結尾處的 0 並新增 ...
交換兩個字串
交換兩個字串,原來的字串分別為 學生 和 好 字串輸出顯示為 學生好 交換後輸出顯示為 好學生 include using namespace std int main char c1 5 學生 char c2 3 好 char m,n,t m c1 n c2 cout 交換前 m n n t co...