【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的初始赋值效率会更好一点

posted @ 2021-12-19 22:29  TICSMC  阅读(24)  评论(0)    收藏  举报