화살표는 왼쪽으로 회전 문자열 제공을 의미

제목 설명

합니다 (ROL) 왼쪽 회전라는 어셈블리 언어 교육의 변화가, 이제이 명령이 문자열 연산 결과에 의해 시뮬레이션, 간단한 작업이 있습니다. 주어진 문자 시퀀스 S의 경우, K 비트 시리얼 출력 한 후 그 왼쪽 원을 넣어. 예를 들어, 문자 시퀀스 S = "abcXYZdef는"세 이후, 즉 "XYZdefabc"을 필요한 출력 결과를 좌측으로 회전. 그것은 간단하지 않다? OK, 그것을 얻을!
1 개 아이디어 : 문자열 String 클래스 () 메소드 철회 문자열의 사용
String substring(int beginIndex, int endIndex)
그것은이 문자열의 하위 문자열을 반환합니다. 
   API가 CONCAT를 사용하여 String 클래스 () 문자열 연결을 구현
String concat(String str)
지정된 문자열은 문자열의 끝으로 연결되어있다.
코드 :
공용 클래스 해결 { 
    공개 문자열 LeftRotateString (문자열 STR, INT 않음) { 
        경우 (STR == 널 || str.length () == 0 || N <0 || N> str.length ()) { 
            복귀 STR; 
        } 
        N % = str.length (); 
        문자열 STR1 str.substring = (0, N); 
        스트링 (STR2) = str.substring (N, str.length ()); 
        str2.concat (STR1)을 반환; 
    } 
}

  이 개 아이디어 :

* 앞의 1. 먼저 절반 반전이
* 2. 후반이 다시 반전
후 * 3. 그리고 전체 문자열 플립
*
문자열은 이성을 상실 유연한 데이터베이스를 사용하지 않습니다 * 테스트 사이트

공용 클래스 해결 { 
    공개 문자열 LeftRotateString (문자열 STR, INT 않음) { 
        경우 (STR == 널 || str.length () == 0 || N <0 || N> str.length ()) { 
            복귀 STR; 
        } 
        [] = CH str.toCharArray ()는 char; 
        reverseString (CH2, 0, N-1); 
        reverseString (str.length ()을 CH, N - 1); 
        reverseString (CH2, 0, str.length () - 1); 
        새로운 String (채널)을 반환; 
    } 
    공개 무효 reverseString (CHAR [] CH, INT 시작 INT 단부) { 
        동안 (시작 <단부) { 
            CHAR 온도 = CH [기동]; 
            CH [START = CH의 [END]; 
            CH [단부]를 임시 =; 
            + 1 시작 = 시작; 
            말단 단부 = - 1;
        } 
    } 
}

  상영 시간 : 17ms를

  메모리를 가지고 : 9668k를

추천

출처www.cnblogs.com/maohaitao/p/11286637.html