설명의 OCAC 첫 여름 대회 타이틀 길고 긴 문자열

긴, 긴 문자열
원제 링크 : HTTP : //codeforces.com/problemset/problem/71/A
[제목 설명한
긴, 긴 문자열은 "제이션"또는 "자국어"과 같은 문자열이며 당신이이 말을 전사 할 때 이러한 문자열은 많은 단어, 너무 많은 노력이 포함되어 있습니다.
우리는 긴 문자열 긴 문자열을 정의하는 경우와 문자열의 길이가 10보다 큰 경우에만.
우리는 그래서 모든 좋은 긴 문자열이 단순화 될 필요가 단순화 단어에있다.
우리는 다음과 같이 단순화 :들 문자열을,이 세 부분을 잇기 좋은 긴 문자열 (이상 10 이상), 우리는 변환이 경우 :
제 1 부분은 첫 글자 S이며,
두 번째 부분 상기 제 1 초기와 마지막 문자의 나머지 요소를 제거한 후의 수는
세 번째 부분은 마지막 문자 S이다.
그것이 좋은 긴 문자열 그래서 예를 들어, "현지화"의 문자열을, 그 길이는 10 개 이상의 (12)이다. 동작의 결과 "L10N"을 단순화된다.
"I18N"로 단순화 "자국어"의 동작 후
단어의 요소의 수는 10을 초과하지 않기 때문에, "jinitaimei"- 상태 "jinitaimei"결과 간략화 동작 자체.
당신은 단어의 번호가 부여되어, 한 번 간단하게 모든 단어 후 출력이 필요합니다.
[입력 형식
, 입력의 첫 줄은 정수 n (1 <= N 포함 <
다음 N 라인의 문자열 (1과 100 사이의 기간)을 포함하는 각 라인.
[] 출력 포맷
출력 N 라인 단순화는 입력 워드의 결과에 대응하는 각 라인.
[샘플 입력]
. 4
단어
제이션
국제화
Pneumonoultramicroscopicsilicovolcanoconiosis
[] 샘플 출력
워드
L10N
I18N의
p43s
[문제점] 분석
각 스트링 S의 경우, 그 길이를 가정이 경우 그 길이 <= 10, n은 우리 출력으로서, 그렇지 우리는 단지 출력 S [0] + (N- 필요 2) + S [N-1] 그것에.
다음을 달성하기 위해 코드 문자 배열을 사용하여 :

#INCLUDE <비트 / stdc ++ H.> 
네임 스페이스를 사용하여 표준; 

숯 CH [110]; 
INT의 N, m; 

INT의 main () { 
    CIN >> N; 
    {- (N) 동안 
        , CIN >> CH m = 용의 나 strlen (CH); 
        경우 (m <= 10) COUT << << ENDL CH; 
        다른 COUT << CH [0] << m - CH << 2 [m-1] << ENDL; 
    } 
    0을 반환; 
}

 다음을 달성하기 위해 코드 문자열을 사용 :

#INCLUDE <비트 / stdc ++ H.> 
네임 스페이스를 사용하여 표준; 

문자열의; 
INT의 N, m; 

INT의 main () { 
    CIN >> N; 
    동안 (N -) { 
        CIN >> S; m = s.length (); 
        경우 (m <= 10)의 COUT << << ENDL; 
        다른 COUT << S [0] << m - 2 << S [m-1] << ENDL; 
    } 
    0을 반환; 
}

 

추천

출처www.cnblogs.com/ocac/p/11113415.html