题解 | #密码截取#
密码截取
http://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1
package main
import (
"bufio"
"fmt"
"io"
"os"
"strings"
)
func main() {
// input
// var input string
// fmt.Scanf("%s\n", &input)
inputReader := bufio.NewReader(os.Stdin)
input, err := inputReader.ReadString('\n')
if err == io.EOF {
return
}
input = strings.Trim(input, "\r\n")
// 从最大程度开始sliding window, 直到找到对称字符串
l := len(input)
for i:=0; i<l; i++ {
for j:=0;j<=i; j++ {
window := input[j:l-i+j]
if isSymmetry(window) {
fmt.Println(len(window))
return
}
}
}
}
func isSymmetry(s string) bool {
l := len(s)
for i, j := 0, l-1; i < j; i, j = i+1, j-1 {
if s[i] != s[j] {
return false
}
}
return true
}