2014 华为机考 中国海洋大学上午第三题(java实现)
2013-10-12 15:56
309 查看
昨天上午,在还算轻松地情况下完成了机考,虽然最后一题做了一个多小时都没做出来,但是庆幸后面的行为模式测试过关了,真是刷人的测试啊。
回来后把第三题再想想,重新做了一遍,结果不到20分钟就做出来了(我觉得做出来了,几次错误、正确测试都还行,但正确与否还需验证)。明天要面试,不知道结果怎样,但是不管怎样,尽力就好,像半泽直树那样拼搏的人生才有意义啊~~!!
题目,记得个大概。就是有字符串“?^_^*”,"?"与“*”中间字符为主要匹配字符,“?”代表一个字符,而“*”可以当做0或任意数量字符。对目标字符串进行匹配,并输出字符串匹配成功的第一个字符的下标,字符串的第一个字符下标为0。(我一开始没注意到“?”可以有N多个,白浪费功夫做一个“?”的匹配了)。
例子:
输入:?^_^*
abc^_^abc
输出:2
俺自己的代码:
View Code
回来后把第三题再想想,重新做了一遍,结果不到20分钟就做出来了(我觉得做出来了,几次错误、正确测试都还行,但正确与否还需验证)。明天要面试,不知道结果怎样,但是不管怎样,尽力就好,像半泽直树那样拼搏的人生才有意义啊~~!!
题目,记得个大概。就是有字符串“?^_^*”,"?"与“*”中间字符为主要匹配字符,“?”代表一个字符,而“*”可以当做0或任意数量字符。对目标字符串进行匹配,并输出字符串匹配成功的第一个字符的下标,字符串的第一个字符下标为0。(我一开始没注意到“?”可以有N多个,白浪费功夫做一个“?”的匹配了)。
例子:
输入:?^_^*
abc^_^abc
输出:2
俺自己的代码:
import java.io.BufferedInputStream; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { static int num=0; public static void main(String[] args) { Scanner cin = new Scanner(new BufferedInputStream(System.in)); String s1 = cin.next(); String s2 = cin.next(); int flag=0,k=0,t=-1; char[] ch = s2.toCharArray(); List<Character> list = get(s1); for(int i=num-1;i<ch.length;i++){ if(flag==0){ if(ch[i]==list.get(k)){ flag=1; k++; t=i-num; } }else{ if(ch[i]==list.get(k)){ k++; if(k==list.size()) break; }else{ flag=0; k=0; t=-1; } } } if(k<list.size()) t=-1; if(t>=0) System.out.print(t); else System.out.print(t); } public static List<Character> get(String s){ List<Character> list = new ArrayList<Character>(); char[] ch = s.toCharArray(); for(char c:ch){ if(c=='?') num++; else if(c!='*') list.add(c); else break; } return list; } }
View Code
相关文章推荐
- 华为2014 第三题地铁换乘 java实现
- 华为2014机试样题1: 计票统计 java实现
- 华为机试题2014 字符串过滤程序 java实现
- 华为2014第三题
- 华为校园招聘上机试题Java实现(一)
- 网上20132014华为机试的相关java实现(2)
- 华为机试准备--练习题(JAVA实现)
- 标题华为2016校招机试题(2015年9月) 海大上午场(包含实现代码,运行环境为vc)
- 华为机试1-10 Java实现
- 华为校园招聘上机试题Java实现(二)
- 华为机试(字符串最后一个单词长度,计算字符串的个数,明明的随机数) Java实现
- 华为校招上机笔试试题(A卷)——java实现
- java(2014)实现对mysql数据库分页的代码
- 华为上机题整理1——Java实现
- 树的众多操作(2014华为校园招聘 机试 第三题 )
- 华为2015年编码大赛—笨笨熊搬家交通篇JAVA实现
- leetcode+华为笔试题-java实现返回一个整数数组中最大子数组的和
- Java实现“年-月-日 上午/下午时:分:秒”的简单代码
- 华为机试准备--练习(JAVA实现)
- 栈的java实现和栈的应用举例(华为面试)