华为2015 简单 字典输入法 java
题目摘自http://blog.csdn.net/dongyi91/article/details/38639915 写了2个小时,水平太菜了
入法的编码原理为:根据已有编码表,当输入拼音和数字后输出对应的字符。例如:
有如下编码:喜_xi 洗_xi 系_xi 无_wu 五_wu(字符和拼音之间用下划线隔开),那么当输入xi2时,结果为拼音位xi的第二个字符,即“洗”。
输入:Code
喜_xi
洗_xi
系_xi
无_wu
五_wu
Search
xi2
End
输出:洗
注意:当在编码表中查询不到时,结果为“Error”;当输入的拼音没有数字,即"xi"时,输出结果为:拼音为xi的前若干个字符,但是最多输出5个,即输出:喜;洗;系。
考察点:字符串的分割、字符串转化为整型、multimap的使用(key为拼音,value为对应字符)。
package 华为机试; import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner; public class Main4 { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scn=new Scanner(System.in);
//读取code
HashMap<String,ArrayList<String>> hash=new HashMap<String,ArrayList<String>>();
String cur=scn.next();
while(!cur.equals("Search"))
{ String s[]=cur.split("_");
// System.out.println(s[0]+"--"+s[1]);
if(hash.get(s[1])==null)
{
ArrayList arry=new ArrayList<String>();
arry.add(s[0]);
hash.put(s[1],arry); }
else
{
hash.get(s[1]).add(s[0]); } cur=scn.next();
}
//输出hash值
/* Iterator<String> iter=hash.keySet().iterator();
while(iter.hasNext())
{
System.out.println(iter.next());
}
*/
cur=scn.next();
while(!cur.equals("End"))
{ char last=cur.charAt(cur.length()-1);
System.out.println("cur"+ last);
//分离出数字 if(last>='0'&&last<='9') //最后一位是是否有数字
{
int i;
for( i=0;i<cur.length();i++)
{
char c=cur.charAt(i);
if(c>'0'&&c<='9') break; }
String key=cur.substring(0,i);
int pos=Integer.valueOf(cur.substring(i)); if(hash.get(key)==null) System.out.println("Error");
else
{ System.out.println(hash.get(key).get(pos));
} }
else //不是数字直接输出前5个,如果有的话
{
int count=0;
for(String s:hash.get(cur))
{
System.out.println(s);
count++;
if(count==5) break;
} }
cur=scn.next(); } } }
华为2015 简单 字典输入法 java的更多相关文章
- 2015第22周六Java反射、泛型、容器简介
Java的反射非常强大,传递class, 可以动态的生成该类.取得这个类的所有信息,包括里面的属性.方法以及构造函数等,甚至可以取得其父类或父接口里面的内容. obj.getClass().getDe ...
- 算法笔记_071:SPFA算法简单介绍(Java)
目录 1 问题描述 2 解决方案 2.1 具体编码 1 问题描述 何为spfa(Shortest Path Faster Algorithm)算法? spfa算法功能:给定一个加权连通图,选取一个 ...
- PAT(B) 1089 狼人杀-简单版(Java)逻辑推理
题目链接:1089 狼人杀-简单版 (20 point(s)) 题目描述 以下文字摘自<灵机一动·好玩的数学>:"狼人杀"游戏分为狼人.好人两大阵营.在一局" ...
- 2015.11.27初识java一集简单的java小程序
JAVA配置环境变量方法: 1.打开我的电脑--属性--高级--环境变量 2.新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME变量值:D:\Java\jdk1.7.0_ ...
- 隐马尔科夫模型python实现简单拼音输入法
在网上看到一篇关于隐马尔科夫模型的介绍,觉得简直不能再神奇,又在网上找到大神的一篇关于如何用隐马尔可夫模型实现中文拼音输入的博客,无奈大神没给可以运行的代码,只能纯手动网上找到了结巴分词的词库,根据此 ...
- 小学生四则运算出题程序 无操作界面java版 简单的运用java中一些基本操作
这是本学期java课中实验大纲里的第一个实验,这里简单做了一个无用户界面版本. import java.util.Random; import java.util.Scanner; public cl ...
- 华为S9306简单实用配置合集
华为QuidWay交换机配置命令手册: .开始 建立本地配置环境,将主机的串口通过配置电缆与以太网交换机的Console口连接. 在主机上运行终端仿真程序(如Windows的超级终端等),设置终端通信 ...
- WebService 超简单入门教程(Java)
写在前面的话: 当两个人碰面后,产生了好感,如果需要得到双方的信息,那么双方的交流是必不可少的!应用程序也如此, 各个应用程序之间的交流就需要WebService来作为相互交流的桥梁! 项目目的: 程 ...
- 华为 2015 机试 输出:数字后面的连续出现的(2个或多个)相同字符(数字或者字符),删去一个,非数字后面的不要删除,例如,对应输出为:33aabb55pin。
package 华为机试; //C++ 输入:由数字和字母组成的字符串,例如:333aaabb55ppin //输出:数字后面的连续出现的(2个或多个)相同字符(数字或者字符),删去一个,非数字后面的 ...
随机推荐
- WCF学习笔记(基于REST规则方式)
一.WCF的定义 WCF是.NET 3.0后开始引入的新技术,意为基于windows平台的通讯服务. 首先在学习WCF之前,我们也知道他其实是加强版的一个面向服务(SOA)的框架技术. 如果熟悉Web ...
- MySQL基础学习之数据表
查看数据表 SHOW TABLE; 查看数据表详细结构 SHOW CREATE TABLE 表名\G; 创建数据表 CREATE TABLE 表名(数据名 类型,数据名1 类型2); CREATE ...
- (转)HTTP协议(2)
转自:http://kb.cnblogs.com/page/130970/ 作者 :小坦克 当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无 ...
- hdu 2079 选课时间
hdu 2079 选课时间 题意:选的学分总和为n,并且学分为a的课有b种,总共有K(1<=k<=8)种学分不同的课,并且要选的学分最多为40:问选课方案有多少种?(学分相同的课即认为相同 ...
- myeclipse10.0优化
一.Myeclipse10修改字体 MyEclipse10是基于Eclipse3.7内核,但在Eclipse的Preferences-〉general-〉 Appearance->Colors ...
- VisualStudio自定义代码段_方法一
在VisualStudio里,使用代码段会提高我们的编写速度.其实,就是给一段代码加个快捷方式,使用时,快捷方式按键+2次Tab键. 举个例子: 比如输入Console.WriteLine (); 传 ...
- Android XML文件解析
在Android平台上可以使用Simple API for XML(SAX) . Document Object Model(DOM)和Android附带的pull解析器解析XML文件. 下面是本例子 ...
- [转载]常用Web Service汇总(天气预报、时刻表等)
下面总结了一些常用的Web Service,是平时乱逛时收集的,希望对大家有用. ============================================ 天气预报Web Servic ...
- RubyCritic:一款不错的检测代码质量工具
关注代码质量是高效开发必须要做的一件事,那么在 Ruby 开发的过程中,是否有什么好的代码质量检测工具呢?下面由 Ruby 工程师路英瑞介绍一下 RubyCritic--一款还不错的代码质量检测工具. ...
- Android 多渠道打包原理和使用
每次中午吃饭总会和技术同学聊天.当做 iOS 开发的做安卓开发的人员在一起的时候,他们中间又多了一个话题:iOS 开发难还是安卓开发难. 这个时候做安卓开发的同学最激动说安卓开发要自己画界面.机型复杂 ...