• name


    题目描述

    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


    算法:
    import java.util.Scanner;
    
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int n = sc.nextInt();
    		String str[] = new String[n];
    		String ss[] = new String[n];
    		sc.nextLine();
    		for (int i = 0; i < ss.length; i++) {
    			str[i] = sc.nextLine();
    		}
    		
    		for (int i = 0; i < ss.length; i++) {
    			ss[i] = str[i].substring(0, 1);
    			for (int j = 1; j < str[i].length(); j++) {
    				if(f(str[i].charAt(j))&&!f(str[i].charAt(j-1))) {
    					if(j==str[i].length()-1) {
    						ss[i] += str[i].substring(j);
    					}else {
    						ss[i] += str[i].substring(j, j+1);
    					}
    				}
    			}
    		}
    		int t = 0;
    		for (int i = 0; i < ss.length; i++) {
    			if(ss[i].length()>5) {
    				continue;
    			}else {
    				t++;
    			}
    		}
    		System.out.println(t);
    		for (int i = 0; i < ss.length; i++) {
    			if(ss[i].length()>5) {
    				continue;
    			}else {
    				System.out.println(ss[i]);
    			}
    		}
    		
    	}
    
    	private static boolean f(char charAt) {
    		if((charAt>='a'&&charAt<='z')||(charAt>='A'&&charAt<='Z')) {
    			return true;
    		}
    		return false;
    	}
    }
    

      

  • 相关阅读:
    Sql Server 中的 @@ERROR
    MVC 自定义HtmlHelper帮助类型之分页
    CI(CodeIgniter)框架中的增删改查操作
    WMAP 启动报错 PHP- 提示缺少 msvcr110.dll 的问题
    Bat命令学习 (转载)
    C# 实现刻录光盘功能
    几个操作、名词的说明
    CheckStateChanged(复选框选中状态更改事件)和 CheckedChanged(单选按钮选中状态更改事件)二者区别?
    关于设置Visaul Studio 2010 代码编辑界面背景的方法
    checkBox1_CheckedChanged(object sender, EventArgs e)和checkBox1_CheckStateChanged(object sender, EventArgs e)不同
  • 原文地址:https://www.cnblogs.com/-rainbow-/p/8902067.html
Copyright © 2020-2023  润新知