题解 | #查找兄弟单词#

查找兄弟单词

https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68

  • 读入,一行数据多种类型,字典根据N遍历读取,其他依次读入接收,字典可能重复不可以用Set
  • 筛选长度,自己,是否由给定字母组成
    • 较多使用Arrays,equals比较两个数组内容是否相等,sort排序无返回值,
    • 遍历判断较为复杂,因此对二者进行字典序之后的数组比较(是否相同字母组成)
  • 排序,上述结果字典序
  • 输出,筛选结果和给定位比较,有则同时输出内容,否则只输出个数

import java.util.*;


public class Main {
 public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        //字典中可能有重复单词,
        List<String> list = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            list.add(scanner.next());
        }
        List<String> sortedList = new ArrayList<>();
        //查找的单词
        String brother = scanner.next();
        char[] bc = brother.toCharArray();
        Arrays.sort(bc);
        int k = scanner.nextInt();
        //筛选
        for (String s : list) {
            //System.out.println(s);
            if (s.length() != brother.length()){//添加删除
                continue;
            }
            if (s.equals(brother)){//自己
                continue;
            }
            char[] schar = s.toCharArray();
            Arrays.sort(schar);
            boolean flag = Arrays.equals(schar, bc);
            if (flag){
                sortedList.add(s);
            }
        }
        //sortedSet.stream().forEach(s -> System.out.println(s));
        System.out.println(sortedList.size());
        if (sortedList.size() > 0 && k <= sortedList.size()){
            Collections.sort(sortedList);
            System.out.println(sortedList.get(k-1));
        }

    }
    //
}


全部评论

相关推荐

点赞 评论 收藏
分享
06-20 21:22
已编辑
门头沟学院 Java
纯真的河老师在喝茶:答应了就跑啊,实习随便跑啊,别被pua了,md就是找个廉价劳动力,还平稳过度正式工,到时候跟你说没转正
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务