>백엔드 개발 >C++ >## 문자열 연결이 문자열 회전을 효율적으로 결정하는 방법은 무엇입니까?

## 문자열 연결이 문자열 회전을 효율적으로 결정하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-24 18:32:15587검색

## How Can String Concatenation Efficiently Determine String Rotation?

문자열 연결을 사용하여 문자열 회전 결정

프로그래밍 인터뷰에서 일반적으로 직면하는 문제는 한 문자열이 다른 문자열의 회전 버전인지 확인하는 것입니다. 두 개의 문자열 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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