Skip to content

14. 句子缩写

时间限制:1.000S 空间限制:32MB

题目描述

输出一个词组中每个单词的首字母的大写组合。

输入描述

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

输出描述

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

输入示例

1 ad dfa fgs

输出示例

ADF

提示信息

注意:单词之间可能有多个空格

解法一(模拟)

思路分析:

  1. 根据题意处理输入输出即可

实现代码如下:

java
public class k_14_SentenceAbbreviations {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 读取测试数据组数
        String number = in.nextLine();
        int n = Integer.parseInt(number);
        while (n-- > 0) {
            StringBuilder result = new StringBuilder();
            // 读取一行输入
            String str = in.nextLine();
//            System.out.println(str);
            // 通过空格进行切割
            String[] words = str.split("\\s+");
            // 测试切割效果
//            System.out.println(Arrays.deepToString(words));
            // 遍历单词
            for (String word : words) {
                result.append(word.charAt(0));
            }
            System.out.println(result.toString().toUpperCase());
        }
    }
}

运行结果如下:

运行时间: 362ms 消耗内存: 12868kb

复杂度分析:

  • 时间复杂度: O(n×m)
  • 空间复杂度: O(m)