华为机试_字符串识别_Vector的使用;
第一题:拼音转数字
输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:
描述: 拼音 yi er san si wu liu qi ba jiu
阿拉伯数字 1 2 3 4 5 6 7 8 9
输入字符只包含小写字母,所有字符都可以正好匹配
运行时间限制:无限制
内存限制: 无限制
输入: 一行字符串,长度小于1000
输出: 一行字符(数字)串
样例输入: yiersansi
样例输出: 1234
总结几个用法:
1、区别char、String、Vector<>str; 字符‘’ 字符串“” 向量<>中是向量存的数据类型(动态存储)
2、最后打印的内容只能是char、String格式的,所以return的时候加上这句str.toString()表示将向量转换成String型;还有str.toArray转换成数组;
package t0806;
import java.util.Vector;
public class test2 {
public static void main(String[] args){
String str = "yiersansi";
String str2 = solve(str);
System.out.println("样本输出为:"+str2);
}
public static String solve(String str2){
Vector<String> str3=new Vector<String>(); //new一个空的字符串型的向量
char ch[]=str2.toCharArray(); //将字符串转换成字符数组
int length=str2.length();
int k=0;
while(true){ // 习惯使用这种while。break放在内部,而不是放在括号里面,除非你非常清楚它的运行机制
if (ch[k]=='y'&&ch[k+1]=='i')
{str3.addElement("1");k=k+2;}
else if(ch[k]=='e'&&ch[k+1]=='r')
{str3.addElement("2");k=k+2;}
else if(ch[k]=='s')
{
if (ch[k+1]=='a'&&ch[k+2]=='n')
{str3.addElement("3");k=k+3;}
else if(ch[k+1]=='i')
{str3.addElement("4");k=k+2;}
}
else if(ch[k]=='w'&&ch[k+1]=='u')
{str3.addElement("5");k=k+2;}
else if(ch[k]=='l'&&ch[k+1]=='i'&&ch[k+2]=='u')
{str3.addElement("6");k=k+3;}
else if(ch[k]=='q'&&ch[k+1]=='i')
{str3.addElement("7");k=k+2;}
else if(ch[k]=='b'&&ch[k+1]=='a')
{str3.addElement("8");k=k+2;}
else if(ch[k]=='j'&&ch[k+1]=='i'&&ch[k+2]=='u')
{str3.addElement("9");k=k+3;}
if (k>=length) //一旦超过
break;
}
return str3.toString(); // 将向量转成String形式的
}
}
版本二:
增加手动输入字符串,enter按键输出结果:
package t0806; import java.util.Scanner;
import java.util.Vector; public class test2 {
static String ss;
public static void main(String[] args){
System.out.println("请输入字符串:");
Scanner scStr = new Scanner(System.in);
ss = scStr.next(); //String str = "yiersansi";
String str2 = solve(ss);
System.out.println("样本输出为:"+str2); }
public static String solve(String str2){
Vector<String> str3=new Vector<String>();
char ch[]=str2.toCharArray();
int length=str2.length();
int k=0;
while(true){
if (ch[k]=='y'&&ch[k+1]=='i')
{str3.addElement("1");k=k+2;}
else if(ch[k]=='e'&&ch[k+1]=='r')
{str3.addElement("2");k=k+2;}
else if(ch[k]=='s')
{
if (ch[k+1]=='a'&&ch[k+2]=='n')
{str3.addElement("3");k=k+3;}
else if(ch[k+1]=='i')
{str3.addElement("4");k=k+2;}
}
else if(ch[k]=='w'&&ch[k+1]=='u')
{str3.addElement("5");k=k+2;}
else if(ch[k]=='l'&&ch[k+1]=='i'&&ch[k+2]=='u')
{str3.addElement("6");k=k+3;}
else if(ch[k]=='q'&&ch[k+1]=='i')
{str3.addElement("7");k=k+2;}
else if(ch[k]=='b'&&ch[k+1]=='a')
{str3.addElement("8");k=k+2;}
else if(ch[k]=='j'&&ch[k+1]=='i'&&ch[k+2]=='u')
{str3.addElement("9");k=k+3;} if (k>=length) //一旦超过
break;
}
return str3.toString();
} }

华为机试_字符串识别_Vector的使用;的更多相关文章
- 华为机试001:字符串最后一个单词的长度(华为OJ001)
华为机试 字符串最后一个单词的长度 计算字符串最后一个单词的长度,单词以空格隔开. 提交网址: http://www.nowcoder.com/practice/8c949ea5f36f422594b ...
- 2014华为机试西安地区B组试题
2014华为机试西安地区B组试题 题目一.亮着点灯的盏数 一条长廊里依次装有n(1≤n≤65535)盏电灯,从头到尾编号1.2.3.-n-1.n.每盏电灯由一个拉线开关控制.開始,电灯所有关着. 有n ...
- 2014华为机试西安地区A组试题
2014华为机试西安地区A组试题 题目一.分苹果 M个同样苹果放到N个同样篮子里有多少种放法,同意有篮子不放. 1<=M<=10.1<=N<=10 比如5个苹果三个篮子,3,1 ...
- 华为机试ACM(字符组合问题)
今晚做了华为的机试,3道ACM题,最后一道是实现从M个不同字符中任取N个字符的所有组合. eg: input:ABC 2 output:AB AC BC 第一个输入为字符串,第二个输入为组合的字符个数 ...
- 输入一个字符串,去掉重复的字符,并按ASCII值排序-华为机试
import java.util.Scanner; //输入字符串,去掉重复的字符,并按ASSIC码值排序 public class quChong { public static void main ...
- (华为机试大备战)java。多了解了解最常用的那个类库的方法对处理字符串的方法
1.常考字符串处理:对处理字符串的方法. (a)统计字符串中特定字符的个数. 2.郭靖考了一道二维数组?? 3.多了解了解最常用的那个类库的方法.
- 华为机试正式版(西安c/c++/java),今天下午去机试的题目,新奇出炉了!
下面题目都是回顾的.题目都非常easy, 大家有些基础就能够參加!(语言能够是c/c++.也能够是java的) 题目一(60分): 字符串操作. 将小写转换成大写, 将大写转化为小写, 数字的不做转换 ...
- 华为机试 可怕的N阶乘
题目标题: 计算阶乘n!是一件可怕的事情,因为当n并不是很大时,n!将是一个很大的值.例如13! = 6227020800,已经超过了我们常用的unsigned int类型的取值范围.请设计一个程序, ...
- 2015华为机试——数字基root
题目描写叙述: 求整数的Root:给定正整数,求每位数字之和;假设和不是一位数,则反复; 输入:输入随意一个或多个整数 输出:输出各位数字之和,直到和为个位数为止(输入异常,则返回-1),多行,每行相 ...
随机推荐
- [思维题]Bored Qishen
给出一个整数集,其中包含1-n的所有整数,要求挑选出一个元素最多的子集,使得子集中任意两数的乘积不是完全平方数 (n<=10^6) 求这样一个最大子集的元素个数 #include <cst ...
- Java之ByteArrayInputStream和ByteArrayOutputStream-操作字节数组的类
ByteArrayInputStream和ByteArrayOutputStream 源:内存中的字节数组 目的:内存中的字节数组 这两个流对象不涉及底层资源的调用,操作的都是内存中的数组,所以不需要 ...
- fscanf(格式化字符串输入)
fscanf(格式化字符串输入) 相关函数 scanf,sscanf 表头文件 #include<stdio.h> 定义函数 int fscanf(FILE * stream ,const ...
- nyoj 69 数的长度
数的长度 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出 ...
- configparser
configparser configparser模块是python中用来处理类似于windows的ini格式文件, 一个ini文件的格式 [section] key = value
- SQL 索引
1.http://www.cnblogs.com/AK2012/archive/2013/01/04/2844283.html 2 .聚簇索引和非聚簇索引的区别 3.聚集索引:只能有一个 (相当于字 ...
- sublime Text 3的默认快捷键大全
Ctrl+M 光标跳至对应的括号 Alt+. 闭合当前标签 Ctrl+Shift+A 选择光标位置父标签对儿 Ctrl+Shift+[ 折叠代码 Ctrl+Shift+] 展开代码 Ctrl+KT 折 ...
- 修改HTMLTestRunner模板
---恢复内容开始--- 1.修改bug(passCase不标色和加粗) style = (n == 2 and 'errorCase') or (n == 1 and 'failCase') or ...
- Postgresql:prepared statement "S_1" already exists
近期由于业务需要和一些json的存储查询需要,把新的应用切到pgsql上来,刚刚切好,是可以正常使用的,但是偶尔会来一下 java连接pgsql 偶尔出现 这个错. org.postgresql. ...
- JS基础DOM篇之一:何为DOM?
近日在园子看了一篇文章,一位前端负责人问应聘者何为DOM事件流的三个阶段,我当时一看也是懵圈,于是强迫症复发,遂想要搞清楚它.谁知在查资料的过程中发现有好多关于DOM的概念也是模糊不清,便决定继续延伸 ...