문자열 연결을 사용하여 문자열 회전 결정
프로그래밍 인터뷰에서 일반적으로 직면하는 문제는 한 문자열이 다른 문자열의 회전 버전인지 확인하는 것입니다. 두 개의 문자열 s1과 s2가 주어지면 하나가 단순히 다른 하나의 순환 순열인지 효율적으로 확인하는 것이 과제입니다.
이 경우 후보자는 회전 지점을 식별하고 s2를 다음과 같이 나누는 솔루션을 제공했습니다. 두 개의 세그먼트, s2a 및 s2b. 이러한 세그먼트를 연결하고 결과를 s1과 비교하면 회전을 확인할 수 있습니다.
그러나 면접관은 보다 직접적인 접근 방식을 선호한다고 밝혔습니다. 다음은 문자열 연결 및 문자열 검색을 사용하는 더 간단한 솔루션입니다.
Java 구현:
<code class="java">public static boolean isRotation(String s1, String s2) { return (s1.length() == s2.length()) && ((s1 + s1).indexOf(s2) != -1); }</code>
Python 구현:
<code class="python">def is_rotation(s1, s2): return len(s1) == len(s2) and s2 in s1 * 2</code>
이 솔루션에서는 먼저 두 문자열의 길이가 동일한지 확인합니다. 그런 다음 s1을 자체적으로 연결하여 원래 문자열과 회전된 버전을 모두 포함하는 문자열을 효과적으로 생성합니다. 이 연결된 문자열 내에 s2가 존재하는지 확인함으로써 하나가 다른 하나의 회전인지 확인할 수 있습니다.
위 내용은 ## 문자열 연결이 문자열 회전을 효율적으로 결정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!