> Java > java지도 시간 > 본문

Leetcode — 탑 인터뷰 –. 유효한 회문

DDD
풀어 주다: 2024-11-14 13:00:02
원래의
459명이 탐색했습니다.

Leetcode — Top Interview –. Valid Palindrome

다음과 같이 설명하면 쉬운 문제입니다.

모든 대문자를 소문자로 변환하고 영숫자가 아닌 문자를 모두 제거한 후 앞뒤로 동일하게 읽는 경우 구문은 회문입니다. 영숫자에는 문자와 숫자가 포함됩니다.

문자열 s가 주어졌을 때 회문이면 true를 반환하고 그렇지 않으면 false를 반환합니다.

예 1:

입력: s = "남자, 계획, 운하: 파나마"
출력: true
설명: "amanaplanacanalpanama"는 회문입니다.

예 2:

입력: s = "자동차 경주"
출력: 거짓
설명: "raceacar"는 회문이 아닙니다.

예 3:

입력: s = " "
출력: true
설명: s는 영숫자가 아닌 문자를 제거한 후의 빈 문자열 ""입니다.
빈 문자열은 앞뒤로 똑같이 읽으므로 회문입니다.

제약조건:

1

s는 인쇄 가능한 ASCII 문자로만 구성됩니다.

회문에 따르면 기본적으로 알파가 아닌 모든 것을 제거한 다음 호출하여 대소문자 메서드를 낮추고 비교를 위해 되돌립니다.

방법과 약간의 reg exp를 사용하면 이 문제를 3줄로 해결할 수 있습니다.

class Solution {
    public boolean isPalindrome(String s) {
        final String reduced = s.replaceAll("[^A-Za-z0-9]", "").toLowerCase();
        final String inverted = new StringBuilder(reduced).reverse().toString();
        return reduced.equals(inverted);
    }
}
로그인 후 복사

런타임: 15ms, Valid Palindrome에 대한 Java 온라인 제출의 22.51%보다 빠릅니다.

메모리 사용량: 44.8MB, 유효한 Palindrome에 대한 Java 온라인 제출의 34.15% 미만입니다.

간단하고 쉬운 질문이면 충분하지만 더 나은 성능을 얻으려면 각 문자를 반복하고 확인하고 필요에 따라 제거하고 조정할 수 있습니다. 이 경우 leetcode에서 saksham 답변을 확인하세요(자세히 설명하고 싶다면 , 아래에 댓글을 남겨주세요).

그렇습니다! 논의할 다른 사항이 있으면 언제든지 댓글을 남겨주세요. 누락된 사항이 있으면 알려주시면 그에 따라 업데이트할 수 있습니다.

다음 포스팅까지! :)

위 내용은 Leetcode — 탑 인터뷰 –. 유효한 회문의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿