博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
查找兄弟单词
阅读量:7112 次
发布时间:2019-06-28

本文共 2738 字,大约阅读时间需要 9 分钟。

hot3.png

题目描述

这里写图片描述

这里写图片描述
这里写图片描述

输入描述

先输入字典中单词的个数,再输入n个单词作为字典单词。输入一个单词,查找其在字典中兄弟单词的个数再输入数字n

输出描述

根据输入,输出查找到的兄弟单词的个数

输入例子

3abcbcacababc1

输出例子

2bca

算法实现

import java.util.*;/** * All Rights Reserved !!! */public class Main {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);//        Scanner scanner = new Scanner(Main.class.getClassLoader().getResourceAsStream("data.txt"));        Map
> map = new HashMap<>(); while (scanner.hasNext()) { map.clear(); int n = scanner.nextInt(); // 构造一个字典 while ((--n) >= 0) { String s = scanner.next(); Key k = new Key(s); if (map.containsKey(k)) { map.get(k).add(s); } else { List
list = new ArrayList<>(); list.add(s); map.put(k, list); } } // String s = scanner.next(); // s的第i个兄弟节点 int i = scanner.nextInt(); Key k = new Key(s); List
list = map.get(k); if (list != null) { Collections.sort(list); // 删除s while (list.contains(s)) { list.remove(s); } System.out.println(list.size()); int cnt = 0; Iterator
itr = list.iterator(); String t = ""; while (cnt < i && itr.hasNext()) { t = itr.next(); if (!t.equals(s)) { cnt++; if (cnt == i) { System.out.println(t); } } } }else { System.out.println(0); } } scanner.close(); } private static class Key { private String s; private String t; private int hashCode; public Key(String s) { this.s = s; if (s == null) { hashCode = 0; } else { char[] chars = s.toCharArray(); Arrays.sort(chars); t = new String(chars); hashCode = t.hashCode(); } } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Key key = (Key) o; return t != null ? t.equals(key.t) : key.t == null; } @Override public int hashCode() { return hashCode; } }}

转载于:https://my.oschina.net/u/2822116/blog/823450

你可能感兴趣的文章
[DeviceOne开发]-土地销售项目源码分享
查看>>
HTTPS抓包以及HOST配置
查看>>
工作技术小结-RPM制作和Jmeter+SSL
查看>>
Windows下安装Redis
查看>>
Java Web 编码问题三:URL和URI以及QueryString的编码问题
查看>>
the linux command line学习笔记之五
查看>>
JAVA对象和JSON互相转换(maven)
查看>>
线程 例子
查看>>
Swift3.0 类和结构体的选择
查看>>
Redis主从及其PHP扩展安装配置
查看>>
MySQL SELECT ... FOR UPDATE
查看>>
我的友情链接
查看>>
hadoop伪分布式搭建,运行 wordcount
查看>>
数据分析常用到的文件排序及对比命令
查看>>
SlidingUpPanel开源项目的用法
查看>>
Linux文件管理类命令之mv
查看>>
select循环
查看>>
spring整合quartz实现定时任务
查看>>
我的友情链接
查看>>
实习了两个月了,说说感悟吧..
查看>>