1029 - 词组缩写

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

定义:一个词组中每个单词的首字母的大写组合称为该词组的缩写。
比如,C语言里常用的EOF就是end of file的缩写。

题目输入

输入的第一行是一个整数T,表示一共有T组测试数据。
接下来有T行,每组测试数据占一行,每行有一个词组,每个词组由一个或多个单词组成;每组的单词个数不超过10个,每个单词有一个或多个大写或小写字母组成;
单词长度不超过10,由一个或多个空格分隔这些单词。

题目输出

请为每组测试数据输出规定的缩写,每组输出占一行。

输入/输出样例

输入格式

1
end of file

输出格式

EOF

C语言解答

#include<stdio.h>
#include<string.h>
#include<ctype.h>

int main()
{
	int t,n,i;
	char a[200];
	scanf("%d%*c",&t);
	while(t--)
	{
		gets(a);
		for(n=i=0;i<strlen(a);i++)
		{
		    if(isalpha(a[i])&&n==0)
			{
				putchar(toupper(a[i]));
				n++;
			}
            if(!isalpha(a[i]))
				n=0;
		}
		printf("\n");
	}
	return 0;
}

C++解答

#include<stdio.h>
#include<string.h>
#include<ctype.h>

int main()
{
	int t,n,i;
	char a[200];
	scanf("%d%*c",&t);
	while(t--)
	{
		gets(a);
		for(n=i=0;i<strlen(a);i++)
		{
		    if(isalpha(a[i])&&n==0)
			{
				putchar(toupper(a[i]));
				n++;
			}
            if(!isalpha(a[i]))
				n=0;
		}
		printf("\n");
	}
	return 0;
}

Java解答

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int t = Integer.parseInt(in.nextLine());
		while(t-->0){
			String[] ss = in.nextLine().split(" ");
			StringBuffer sb = new StringBuffer();
			for(String s:ss)
				if(!s.equals(""))
					if(s.charAt(0)>'Z')sb.append((char)(s.charAt(0)-'a'+'A'));
					else sb.append((char)(s.charAt(0)));
			System.out.println(sb);
		}
	}

}

Python解答

def f(a):
	c = ''
	for i in range(len(a)):
		b = a[i]
		c = c +b[0].upper()
	return c

n = int(raw_input())
while n > 0:
	n -= 1
	line = raw_input().split()
	print f(line)