>  기사  >  백엔드 개발  >  Palindrome 문자열 확인

Palindrome 문자열 확인

PHPz
PHPz원래의
2024-07-17 13:36:151205검색

Palindrome check a string

이건 꽤 흔해요. 어려울 것 같지만, 생각해보면 나쁘지는 않습니다.

문자열이 회문인지 확인하는 golang 함수를 작성하세요.

회문은 순서를 바꿔도 동일한 일련의 문자입니다. 예:

  • 'aba'는 회문입니다

  • "abb는 그렇지 않습니다

  • "ab a"는 대부분 회문으로 간주되므로 공백을 무시합니다.

func PalindromeCheck(str string) bool {
    trimmedStr := strings.ReplaceAll(str, " ", "")
    len := len(trimmedStr)
    chars := []rune(trimmedStr)
    for i := 0; i < len/2; i++ {
        if chars[i] != chars[len-i-1] {
            return false
        }
    }
    return true
}

이 솔루션은 온라인 검색 시 C 또는 Java에서 찾을 수 있는 것과 기능적으로 동일합니다. 우리는 본질적으로 일치하지 않는 문자를 찾기 위해 처음과 끝에서 탐색하기 위해 이중 포인터를 사용하고 있습니다. 불일치가 발견되면 문자열이 회문이 아니라고 선언할 수 있습니다.

더 좋게 만들 수 있을까요?
strings.ReplaceAll을 사용하는 것보다 공백을 자르는 더 좋은 방법이 있습니까? (있긴 하지만 보기 흉할 수도 있습니다)
[]룬으로 변환하면 효율이 어떤가요?

댓글로 여러분의 생각을 남겨주세요.

감사합니다!

이 게시물과 이 시리즈의 모든 게시물에 대한 코드는 여기에서 확인할 수 있습니다

위 내용은 Palindrome 문자열 확인의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.