화웨이 기계 시험 연습 - 문자 카운트

주제 :

ASCII 코드에 따라 동일한 수의 번호가 오름차순으로 출력 경우. 다른 문자가있는 경우, 이러한 문자는 통계가 없습니다.

다음과 같은 인터페이스를 구현할 :
입력 (반복적으로 호출 될 수있다) 영문자, 숫자, 공간 통계 각 문자열
이하 통계 결과로부터 출력 계수의 개수에 따라가, 만일 코드에 따른 통계 동일한 번호 ASII 오름차순으로 정렬 출력은
재 계산, 현재의 통계를 지우려면
을 확인합니다 발신자 :
'\ 0'으로 입력 문자열의 끝을.

 

 

설명을 입력합니다 :

문자열을 입력합니다.

출력 설명 :

의 문자
각각 영문자 (케이스 별도)로부터의 출력에 따른 통계, 숫자, 공간 통계 및 숫자 다 적은 경우 오름차순 정렬 ASII 코드 출력에있어서 동일의 카운트 넘버. 다른 문자가있는 경우, 이러한 문자는 통계가 없습니다.

 

2 차원 정렬

수의 하강에 의해 평가

소형에서 대형까지 오름차순 야드

 

 

아이디어 :

그래서 첫 번째 문자는 기본적으로 초기에 10 만 + ASC로 설정 디지털 기능입니다 사용의 ArrayList에 저장

그런 때마다 반복 -1000 (통계 만 캐릭터, 100 개 이상의에 문자 최대 때문에).

이러한 그림이 마침내 2 100 전에, 수만 얻을 수있다 - 3 다음에, 수 (더 작은 수) 오름차순입니다. 이러한 직접 일종의 TreeSet의 (큰 작은 숫자의 조합) 이하로 더에서의 수를 완료하고, 대형 동일한 코드 오름차순 작은 수입니다.

(3) 후 다음 출력 문자로 촬영.

 

 

 

가져올 수 있는 java.util을 *. ; 

        가져  정적 java.util.Collections.sort을; 

공용  클래스 주요 {
     공공  정적  무효 메인 (문자열 []에 args) { 
        스캐너 S = 새로운 스캐너 (System.in);
        반면 (s.hasNext는 ()) { 
            ArrayList를는 <문자> 칼 = ) (ArrayList를하는 단계; 
            ArrayList에 <정수> = intAl 새로운 ArrayList를 (); 

            문자열은 STR = s.nextLine을 ();
             [] = 카 str.toCharArray (); 

            대한 (int로 I = 0; I <cArr.length; I ++ ) { 

                 C = 카 [I]; 

                경우 (c == '\ 0' ) {
                     체류 ; 
                } 


                부울 YN는 = 거짓 ;
                경우 (c> = 'A'&& C <= 'Z' ) { 
                    YN = ; 
                } 
                경우 (c> = 'A'&& C <= Z '가' ) { 
                    YN가 = ; 
                } 
                경우 (c> = 0 && C <= '9'; 
                } 
                경우 (c == 0 ) { 
                    YN = ; 
                } 

                경우 (아니오 == ) {
                     경우 (cAl.contains (c)) {
                         INT의 인덱스 = cAl.indexOf (c);
                        INT N = intAl.get (인덱스); 
                        N = N - 10000 ; 
                        intAl.set (인덱스, N); 
                    } 다른 { 
                        cAl.add (c); 
                        intAl.add (( INT) C + 1000000 ); 
                    } 
                } 
            } 


            TreeSet에 <정수> = TS 새로운 TreeSet의 (intAl);
            (정수 I : TS) { 
                문자열 온도 = i.toString (); 

                INT L = temp.length (); 
                온도 = temp.substring (1 - 4 , l); 
                System.out.print (( 문자 )있는 Integer.parseInt (온도) + "" ); 
            } 
            에서 System.out.println (); 

        } 
    } 
}

추천

출처www.cnblogs.com/clamp7724/p/12160298.html