计算机思维综合训练-Java-14

狂风中的少年 提交于 2020-02-14 18:36:53

java Set

题目

题面描述:
一篇文章由有若干个单词构成,小A希望知道文章中有哪些特殊单词。所谓特殊单词是指,构成这个单词的所有字母(不区分大小写)经过任意方式重组形成的一个新单词也出现在文章中。小A希望知道文章中这样的特殊单词有哪些,您能帮他找出来吗?

输入:
输入数据有若干行,每行为一个字符串,由空格分隔开,单词由大小写字符及数字构成,每个单词长度不超过30个字符。若该行字符为#,表示输入结束。

输出:
按字典序输出所有的特殊单词,所有特殊单词按其第一次在文章中出现的形式输出,每行输出一个单词。
示例输入:
a aa sd 12 aaa Bd dB
BD c a 21 A
aa aaa

示例输出:
12
Bd
a

代码

import java.util.*;

public class Main {
    public static String Sort(String x) {
        String string = "";
        char[] arr = new char[x.length()];
        for (int i = 0; i < x.length(); i++) {
            arr[i] = x.charAt(i);
        }
        Arrays.sort(arr);
        for (int i = 0; i < arr.length; i++) {
            string += arr[i];
        }
        return string;
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Set<String> set = new HashSet<>();//原生的
        List<String> set1 = new ArrayList<>();//存储得到的结果
        List<String> set3 = new ArrayList<>();//存储得到的结果

        while (in.hasNextLine()) {
            String s = in.nextLine();
            if (s.equals("#")) break;
            String arr[] = s.split(" ");
            for (int i = 0; i < arr.length; i++) {
                set1.add(arr[i]);
            }
        }
        for (String value1 : set1) {//用没有排好序的
            for (String value : set1) {//用没有排好序的
                if (!value.equals(value1)){// 两个单词不相等
                    if ((Sort(value1).equals(Sort(value))||(Sort(value1.toLowerCase()).equals(Sort(value.toLowerCase()))))){
                        if (!set.contains(Sort(value1.toLowerCase()))){
                            set.add(Sort(value1.toLowerCase()));
                            set3.add(value1);
                        }
                    }
                }
            }
        }
        String arr[] = set3.toArray(new String[set3.size()]);
        Arrays.sort(arr);
        for (String x : arr
        ) {
            System.out.println(x);
        }
        in.close();
    }
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!