题解 | #牛群的回文队列#
牛群的回文队列
https://www.nowcoder.com/practice/fdd01d1c1ea047f0b2206a477ccf8a90
package main import ( "bytes" "strings" ) /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return string字符串 */ func longest_palindrome_cow_queue(s string) string { // write code here result := "" if len(s) == 0 { return result }else if len(s)==1{ return s } arr := strings.Split(s, "") lMin := 0 rMax := len(arr) - 1 for i := 0; i < len(arr); i++ { // abba if i < rMax && arr[i]==arr[i+1] { result = fc(arr,i,i + 1,result) } // aba if i > lMin && i < rMax && arr[i-1]==arr[i+1] { result = fc(arr,i - 1,i + 1,result) } } return result } func fc(arr []string,l,r int,result string) string { for arr[l] == arr[r] { if l > 0 && r < len(arr)-1 && arr[l-1] == arr[r+1] { l-- r++ } else { break } } if r-l+1 > len(result) { result = funString(arr[l : r+1]) } return result } func funString(arr []string) string { buf := bytes.Buffer{} for i := 0; i < len(arr); i++ { buf.WriteString(arr[i]) } return buf.String() }