1616 分割兩個字串得到回文串 字串

2022-05-25 05:27:10 字數 1377 閱讀 4751

給你兩個字串 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...