2258: name

2258: name

时间限制: 1 Sec  内存限制: 256 MB
提交: 824  解决: 184
[ 提交][ 状态][ 讨论版][命题人: admin]

题目描述

lpq同学最近突然对外国人的名字产生了兴趣,特别是外国女生的名字,于是他开始试图去认识一些国外的女生。

随着认识的女生数量越来越多,lpq发现他的脑子不够用了——他不能准确地记住每个女生的名字。终于有一天,当他又把Hello Kitty和Dear Amy的名字弄混并遭到暴力后,他突发奇想:如果我把每个人的名字按不同部分的首字母变成缩写,就便于记忆,也就不会把名字弄混了。

比如:Hello Kitty简写成HK,Dear Amy简写成DA。

lpq还决定,对于名字简写长度大于5(不包括5)的女生,他便放弃交往。
但是lpq认识的女生太多了,于是他想到了作为神犇的你,请你帮助他。

输入

第一行输入一个整数N(N<=10000),表示女生的人数。

接下的N行,每行包含一个字符串,为一个女生的全名,其中名字不同部分之间用’~!@#$%^&*()’分隔,字符串的长度不大于100。

保证输入的字符只有字母及’~!@#$%^&*()’(不包括引号)。

输出

输出第一行为一个整数K,表示可以继续交往的女生人数。

接下来K行,每一行包括由若干字母组成的字符串,表示对应名字的缩写。

样例输入

3
Hello@#^Kitty
Dear~^Amy
Sro~Li~Pei~Qian

样例输出

3
HK
DA
SLPQ
#include<iostream>
#include<cstring>

using namespace std ; 

#define maxn 110 
int n ; 
char str[maxn] ; 
char result[11000][maxn] ; 
int total = 0  ; 

int main(){
    cin>>n ; 
    while(n--){
        
        int pos = 0 ; 
        cin>>str ; 

        int len = strlen(str) ; 
        bool flag = false ; 
        for(int i = 0 ; i<len ; i++){
            if(isalpha(str[i]) ){
                if(!flag){
                    flag = true ; 
                    result[total][pos++] = str[i] ; 
                    if(pos > 5){
                        result[total][0]= '\0' ;   
                        break ; 
                    }
                }
                    
            }else{
                flag = false ; 

            }
        }
        if(pos>5)
            total-- ; 
        // 设置字符串尾部 (防止被之前的结果影响)
        result[total][pos] = '\0' ; 
        total++ ; 
    }

    cout<<total<<endl ; 
    for(int i=0 ; i<total ; i++){
        cout<<result[i]<<endl ; 
    }

    return 0 ; 
}

猜你喜欢

转载自www.cnblogs.com/yi-ye-zhi-qiu/p/8904271.html
今日推荐