【Leetcode】5956. 找出数组中的第一个回文字符串
给你一个字符串数组 words ,找出并返回数组中的 第一个回文字符串 。如果不存在满足要求的字符串,返回一个 空字符串 "" 。
回文字符串 的定义为:如果一个字符串正着读和反着读一样,那么该字符串就是一个 回文字符串 。
一次遍历+判断回文即可
func firstPalindrome(words []string) string {
for i := 0; i < len(words); i++ {
if isPalindrome(words[i]) {
return words[i]
}
}
return ""
}
func isPalindrome(word string) bool {
left, right := 0, 0
if len(word) == 1 {
return true
} else if len(word)%2 == 0 {
left, right = len(word)/2-1, len(word)/2
} else {
left, right = len(word)/2-1, len(word)/2+1
}
for left >= 0 && right < len(word) {
if word[left] != word[right] {
return false
}
left--
right++
}
return true
}
或许从两端到中间判断直接不需要进行left和right的初始赋值效率会更好一点

浙公网安备 33010602011771号