409 긴 회문 - leetcode

기술:

소문자 나 대문자로 구성된 문자열을 감안할 때, 그 편지로 구축 할 수있는 가장 긴 회문의 길이를 찾을 수 있습니다.

예를 들어이 대한이, 대소 문자를 구분 "Aa"여기 회문으로 간주되지 않습니다.

참고 :
1010을 초과하지 않습니다 주어진 문자열의 길이를 가정합니다.

예:

입력 : 
"abccccdd" 

: 출력 
7 

설명 : 
길이가 7 인 "dccaccd는"입니다 구축 할 수있는 한 가장 긴 회문을.

 

허용
108427
제출
222684

해결책:

 

 

 

 

클래스 솔루션 {
     공공  INT longestPalindrome (문자열들) { 
        
        
        경우 (들 ==의 널 (null) || s.length () == 0 ) {
             반환 0 ; 
        } 
        
        int로 [] = character_count 새로운  INT [123 ]; 
        
        위한 ( int로 I = 0; I)이 (s.length를 <; 내가 ++ ) { 
            
            INT의 POS = ( INT ) s.charAt (I); 
            
            // 에서 System.out.println (POS); 
            
            경우 (character_count [POS] == 0 ) { 
                
                character_count [POS] = 1 ; 
            } 
            다른 {
                character_count [POS] = character_count [POS] +1 ; 
            } 
        } 
        
        INT의 합 = 0 ; 
        INT max_odd = 0 ; 
        
        부울 check_flag = 거짓 ; 
   
        위한 ( int로 ; 나는 character_count.length <I는 I = 0 ++ ) {
             경우 (character_count [I]를! = 0 ) {
                  // 에서 System.out.println (character_count [I]); 
                경우 (character_count [I] % 2 == 0 ) { 
                    합계 = 합계 + character_count [I]; 
                    character_count [I] = 0; 
                    
                    check_flag = 진정한 ; 
                } 
                다른 { 
                    
                    경우 (character_count [I]> max_odd) { 
                        max_odd = character_count [I]; 
                    } 
 = 합 character_count + [I] -1 ; 
                    
                } 

            } 
        } 

         경우 (max_odd> = 1 ) { 
             합계 = 합 +1 ; 
        } 
        
        경우 (! check_flag) { 
            합계 = max_odd; 
        } 
        반환합; 
        
    } 
}

 

 

추천

출처www.cnblogs.com/codingyangmao/p/11571580.html