LeetCode1328 破壞回文串

2022-09-10 06:57:13 字數 765 閱讀 9793

給你乙個由小寫英文本母組成的回文字串 palindrome ,請你將其中 乙個 字元用任意小寫英文本母替換,使得結果字串的 字典序最小 ,且 不是 回文串。

請你返回結果字串。如果無法做到,則返回乙個 空串 。

如果兩個字串長度相同,那麼字串 a 字典序比字串 b 小可以這樣定義:在 a 和 b 出現不同的第乙個位置上,字串 a 中的字元嚴格小於 b 中的對應字元。例如,"abcc」 字典序比 "abcd" 小,因為不同的第乙個位置是在第四個字元,顯然 'c' 比 'd' 小。

對於乙個回文串,將其變成非回文串只需要改變乙個字母即可。字串中字母a出現的位置越靠前,則這個字串的字典序越小。因此:

如果在回文串的前半段存在非a字元,則將第乙個非a字元變為a即可。

如果回文串長度為奇數,則最中間的字母不可改變(無論怎麼變化都是回文串)

如果第一步中未進行任何操作,則需要在字串後半段改變乙個字元,同第一步一樣,如果後半段存在非a字元,則將第乙個非a字元變為a即可。

如果上一步也未進行操作,意味著字串時"aaabaaa",這種型別的,只需要將最後一位字元加1即可。

class solution 

bool up=false;

for(int i=0;i<=palindrome.size()/2-1;i++)

}if(!up)

else

for(;i}

}if(!up)

return palindrome;

}};

Leetcode 1328 破壞回文串

給你乙個回文字串 palindrome 請你將其中 乙個 字元用任意小寫英文本母替換,使得結果字串的字典序最小,且 不是 回文串。請你返回結果字串。如果無法做到,則返回乙個空串。示例 1 輸入 palindrome abccba 輸出 aaccba 示例 2 輸入 palindrome a 輸出 1...

1328 破壞回文串

給你乙個回文字串 palindrome 請你將其中 乙個 字元用任意小寫英文本母替換,使得結果字串的字典序最小,且 不是 回文串。請你返回結果字串。如果無法做到,則返回乙個空串。示例 1 輸入 palindrome abccba 輸出 aaccba 示例 2 輸入 palindrome a 輸出 1...

NOJ1328 回溯 DFS 裝載問題加強版

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述現在碼頭有一批重量不同的貨物,有三艘裝載量不同的貨船,試求出能否一次將貨物裝完 輸入第一行給出貨物的數量n n 10 第二行有n個整數,分別表示這n個貨物的重量 第三行有3個整數,分別表示三艘貨船的載重量 輸出若能夠一次裝完輸出...