Java LeetCode 구현(번호)

1805 단어 JavaLeetCode번호
제목 은 다음 과 같다.

public String countAndSay(int n) {
        if(n == 1){
            return "1";
        }
        //    ,        
        String str = countAndSay(n-1) + "*";//  str     ,      
        char[] c = str.toCharArray();
        int count = 1;
        StringBuilder s = new StringBuilder();
        for(int i = 0; i < c.length - 1;i++){
            if(c[i] == c[i+1]){
                count++;//    
            }else{
                //s.append(s);
                s.append("" + count + c[i]);//   *          
                count = 1;//   
            }
        }
        return s.toString();
    }
     한 번 만 세면 결 과 는'1'이다.이것 은 특수 한 상황 이다.세 려 는 횟수 가 1 보다 많 으 면 재 귀 에 들 어가 야 한다.문자열 에 대해 서 는 자 연 스 럽 게 문 자 를 조작 할 수 없 기 때문에 String 을 char 배열 로 변환 해 야 합 니 다.그 다음 에 for 순환 밖에서 count 변 수 를 정 의 했 습 니 다.주요 역할 은 연속 적 인 문자 가 나타 날 때 누적 하고 마지막 으로 문자 로 전환 하 는 것 입 니 다.이것 은 가장 관건 적 인 부분 입 니 다.
    이 문 제 를 푸 는 과정 에서 처음에 사용 한 것 은 모두 string 이 고 운행 시간 은 30ms 정도 이다.나중에 for 순환 중의 string 변 수 를 Stringbuffer 로 바 꾸 었 고 실행 할 때 8ms 로 급 격 히 떨 어 졌 습 니 다.이것 은 저 에 게 더 이상 String 을 머리 없 이 사용 할 수 없고 적당 할 때 적당 한 변수 유형 을 사용 하면 큰 성능 향상 을 가 져 올 수 있다 는 큰 시사 점 을 주 었 습 니 다.
    그러나 제출 후,나 는 사용 시 1ms 의 범례 를 보 았 다.그야말로'투기'의 전형 이다.이 건 정말 똑똑 해!!!

자바 가 LeetCode(번호)를 실현 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 자바 실현 번호 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기