73 對策字串的最大長度 回文串的判斷

2021-06-26 09:17:54 字數 1154 閱讀 5040

73.對策字串的最大長度。

題目:輸入乙個字串,輸出該字串中對稱的子字串的最大長度。比如輸入字串

「google」,由於該字串裡最長的對稱子字串是「goog」,因此輸出 4。

分析:可能很多人都寫過判斷乙個字串是不是對稱的函式,這個題目可以看成是該函式的

加強版。

/*

73.對策字串的最大長度。

題目:輸入乙個字串,輸出該字串中對稱的子字串的最大長度。比如輸入字串

「google」,由於該字串裡最長的對稱子字串是「goog」,因此輸出 4。

分析:可能很多人都寫過判斷乙個字串是不是對稱的函式,這個題目可以看成是該函式的

加強版。

1.最簡單的就是得到輸入字串的所有子字串,並逐個判斷是不是對稱的。

如果乙個子字串是對稱的,我們就得到它的長度。判斷是否對稱,就是首尾判斷是否相等

2.從中間開始,找對稱字元,首先找出對稱中心(a[i]==a[i+1]),然後從對稱中心開始向兩邊移動比較

從字串的每個字串兩端開始延長,如果當前的子字串是對稱的,

再判斷延長之後的字串是不是對稱的。由於總共有o(n)個字元,每個字元可能延長o(n)次,

每次延長時只需要o(1)就能判斷出是不是對稱的,因此整個函式的時間效率是o(n^2)。

還要注意考慮奇偶情況

*/ #include#includeusing namespace std;

int getsymlen(char *str)

if(right-left-1>max)//right-left+1-2

left=i;//以當前i為中心 偶的情況 左右延展

字串最大長度

已知乙個字串陣列words,要求尋找其中兩個沒有重複字元的字串,使得這兩個字串的長度乘積最大,輸出這個最大的乘積。如 words abcd wxyh defgh 其中不包含重複字元的兩個字串是 abcd 和 wxyh 則輸出16 words a aa aaa aaaa 找不到滿足要求的兩個字串,則輸...

微軟100題(73)對稱字串的最大長度

對稱字串的最大長度 字串 題目 輸入乙個字串,輸出該字串中對稱的子字串的最大長度。比如輸入字串 google 由於該字串裡最長的對稱子字串是 goog 因此輸出4。思路 將題目轉化為,求原串和反轉串的最長連續子串的長度 int longcommonsubstr string s1,string s2...

經典演算法題 求對策字串的最大長度

題目 輸入乙個字串,輸出該字串對稱子字串的最大長度,如輸入google,則輸出4.方法一 思路很中規中矩,遍歷這個字串,若有發現相鄰的兩個字元相等,就迴圈判斷與這兩個字元相鄰的兩個字元是否相等,直到不等,記下字元符合條件的字元個數。最大的個數即為所求。方法二 在方法一的基礎上略有改動,思路還是一樣,...