제목 설명
합니다 (ROL) 왼쪽 회전라는 어셈블리 언어 교육의 변화가, 이제이 명령이 문자열 연산 결과에 의해 시뮬레이션, 간단한 작업이 있습니다. 주어진 문자 시퀀스 S의 경우, K 비트 시리얼 출력 한 후 그 왼쪽 원을 넣어. 예를 들어, 문자 시퀀스 S = "abcXYZdef는"세 이후, 즉 "XYZdefabc"을 필요한 출력 결과를 좌측으로 회전. 그것은 간단하지 않다? OK, 그것을 얻을!
1 개 아이디어 : 문자열 String 클래스 () 메소드 철회 문자열의 사용
API가 CONCAT를 사용하여 String 클래스 () 문자열 연결을 구현
String |
substring(int beginIndex, int endIndex)
그것은이 문자열의 하위 문자열을 반환합니다.
|
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를