문자열 의 역순 (자바 구현)

1185 단어
하나의 문자열 에 대해 서 는 문자열 의 단어 간 에 만 역순 으로 조정 하 는 알고리즘 을 설계 하 십시오. 즉, 문자열 은 빈 칸 으로 구 분 된 부분 으로 구성 되 어 있 습 니 다. 이 부분 을 역순 으로 조정 해 야 합 니 다.원래 문자열 A 와 그의 길 이 를 지정 합 니 다. 역순 후의 문자열 을 되 돌려 주 십시오.테스트 샘플: "dog loves pig", 13
돌아 가기: "pig loves dog"
해석: 먼저 전체 문자열 을 역순 으로 나 눈 다음 에 빈 칸 을 각 하위 문자열 의 역순 으로 나 누 면 결 과 를 얻 을 수 있 습 니 다. 이 방법 은 시간 복잡 도 O (n), 공간 복잡 도 O (i) 입 니 다.
코드 구현: (아래 코드 는 본인 이 직접 테스트 할 수 있 습 니 다)
import java.util.*;

public class Reverse {
    public String reverseSentence(String A, int n) {
        // write code here
        char[] c = A.toCharArray();
        reverse(c,0,n-1);
        int t = 0;
        for(int i=0;i<n;i++){
            if(c[i]==' '){
                reverse(c,t,i-1);
                t = i+1;
            }
        }
      reverse(c,t,n-1);
        return String.valueOf(c);
    }
    public void reverse(char[] c,int left,int right){
       
        while(left<right){
            swap(c,left,right);
            left++;
            right--;
        }
        
    }
    public void swap(char[] c,int a,int b){
     char t = c[a];
        c[a] = c[b];
        c[b] = t; 
    }
}

좋은 웹페이지 즐겨찾기