HDU-2564-词组缩写

来源:互联网 发布:淘宝客户运营平台 编辑:程序博客网 时间:2024/05/16 17:00

词组缩写

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 10080    Accepted Submission(s): 3181


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

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

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

Sample Input
1end of file
 

Sample Output
EOF
 

Author
lemon
 

Source
绍兴托普信息技术职业技术学院——第二届电脑文化节程序设计竞赛
 

Recommend
yifenfei   |   We have carefully selected several similar problems for you:  2565 2566 1215 1286 1406 


题目说了,每组的单词个数不超过10个,单词长度也不超过10个,由一个或多个空格分隔这些单词.
题目要求输出每个单词的首字母.我们要考虑几个特殊情况.
(1)第一个字符可能是空格.所以我单独拿出来处理.
(2)可能有的单词的首字母本身就是大写,所以不需要处理.
知道了这两点.我的思路就清晰了.
(1)处理第一个字符.如果不为' '则判断大小写,是大写则不变,是小写处理为大写.
(2)从下标为1的字符数组循环,如果当前字符不为' '并且当前字符的前一个字符为' ',对当前字符进行大小写处理.
(3)AC!

import java.io.*;import java.util.*;public class Main{public static void main(String[] args){// TODO Auto-generated method stubScanner input = new Scanner(System.in);int t = input.nextInt();input.nextLine();for (int i = 0; i < t; i++){String str = input.nextLine();char s[] = str.toCharArray();if (s[0] != ' '){if (s[0] >= 'A' && s[0] <= 'Z'){System.out.print(s[0]);} else{s[0] = (char) (s[0] - 32);System.out.print(s[0]);}}for (int j = 1; j < s.length; j++){if (s[j - 1] == ' ' && s[j] != ' '){if (s[j] >= 'A' && s[j] <= 'Z'){System.out.print(s[j]);}else{s[j] = (char) (s[j] - 32);System.out.print(s[j]);}}}System.out.println();}}}

 

0 0
原创粉丝点击