hdu1113 字典查找 java版
来源:互联网 发布:印度民俗知乎 编辑:程序博客网 时间:2024/05/17 02:12
题目链接:点击
题目大概意思是给出一个单词对比表 然后找出对应单词所有对应表中符合的单词 不考虑字母顺序 只需要单词所包含的字母相同即可
大概思路:通过hashMap去存储对应表 然后在查询
java中的HashMap 非常让人头疼的一点就是 没办法通过value去查找相应的key 因为这道题目中key对应的value有很多种 只可以key存对应表中的单词 value存排序过后的,然后通过唯一的value去查找key
AC代码
import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Scanner;import java.util.Set;public class Main{ /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); String str,s; Map<String,String> map =new HashMap<String, String>(); while(((str=scan.nextLine()).length())!=0&&!str.equals("XXXXXX")){ //输入对应表 单词 排序过后存value 元单词存key char a[]=str.toCharArray(); Arrays.sort(a); s=String.valueOf(a); map.put(str, s); } while(((str=scan.nextLine()).length())!=0&&!str.equals("XXXXXX")){ char a[]=str.toCharArray(); Arrays.sort(a); s=String.valueOf(a); //通过对应的value 查找所有的key ArrayList arr = valueGetKey(map, s); if(!arr.isEmpty()) { if(arr.size()==1){ for(int i=0; i<arr.size(); i++) { System.out.println(arr.get(i)); } }else{ Collections.sort(arr); for(int i=0; i<arr.size(); i++) { System.out.println(arr.get(i)); } } }else{ System.out.println("NOT A VALID WORD"); } System.out.println("******"); } } private static ArrayList valueGetKey(Map map,String value) { Set set = map.entrySet(); ArrayList arr = new ArrayList<>(); Iterator it = set.iterator(); while(it.hasNext()) { Map.Entry entry = (Map.Entry)it.next(); if(entry.getValue().equals(value)) { String s = (String) entry.getKey(); arr.add(s); } } return arr; }}
阅读全文
0 0
- hdu1113 字典查找 java版
- HDU1113
- hdu1113-字符查找问题 map容器
- 字典树查找字符串(java版)
- 字典查找
- java 版字典树
- java 版字典树
- HDU 1113 字典查找
- 字典数查找字串
- 字典树查找
- hdu1113 Word Amalgamation
- Word Amalgamation hdu1113
- map使用方法 1004 HDU1113
- hdu1113(map用法)
- HDU1113 Word Amalgamation
- java版 字典树
- 查找算法系列(三):字典查找
- 【字典树】串集合查找
- MySQL数据库传中文字符查询返回值为空
- C语言符号优先级
- Oracle ASM安装和配置
- 写给Android App开发人员看的Android底层知识(5)
- (111)移除蓝图接口
- hdu1113 字典查找 java版
- Linux性能分析与调整命令汇总
- 如何开发原生的 JavaScript 插件(知识点+写法)
- 功能: 窗体无边框移动 (学习日记 2017-05-26)
- opengles项目架构图
- vnc配置
- CSS Sprites
- Positive Xor 位运算, 异或的性质
- C++递推算法之放苹果