G面经prepare: Pattern Match
设定一个pattern 把 'internationalization' 变成 'i18n', 比如word是house,pattern可以是h3e, 3se, 5, 1o1s1等,
给pattern和word,判断是否match,
package DataStreamAverage;
public class Solution3 {
public boolean check(String s1, String s2) {
return helper(s1, 0, s2, 0);
}
public boolean helper(String s1, int i1, String s2, int i2) {
if (i1==s1.length() && i2==s2.length()) return true;
if (i1==s1.length() || i2==s2.length()) return false;
if (isDigit(s2.charAt(i2))) {
int num = 0;
while (i2<s2.length() && isDigit(s2.charAt(i2))) {
num = num*10 + (int)(s2.charAt(i2)-'0');
i2++;
}
if (i1+num > s1.length()) return false;
return helper(s1, i1+num, s2, i2);
}
else {
if (s1.charAt(i1) != s2.charAt(i2)) return false;
return helper(s1, i1+1, s2, i2+1);
}
}
public boolean isDigit(char c) {
if (c>='0' && c<='9') return true;
else return false;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Solution3 sol = new Solution3();
boolean res = sol.check("houskjfjjdkse", "h11e");
if (res) System.out.println("True");
else System.out.println("false");
}
}
G面经prepare: Pattern Match的更多相关文章
- LPC43xx SGPIO Pattern Match Mode
模式匹配 所有位串均具有模式匹配功能. 该功能可用于检测启动代码等.要使用该功能,则必须用需匹配的模式来对REG_SS 编程 (请注意, POS 达到零时 REG_SS 不会与 REG 交换!) M ...
- python正则表达式基础,以及pattern.match(),re.match(),pattern.search(),re.search()方法的使用和区别
正则表达式(regular expression)是一个特殊的字符序列,描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子字符串. 将匹配的子字符串替换或者从某个字符串中取出符合某个条件 ...
- G面经prepare: Android Phone Unlock Pattern
1 2 3 4 5 6 7 8 9 只有中间没有其他键的两个键才能相连,比如1可以连 2 4 5 6 8 但不能连 3 7 9 但是如果中间键被使用了,那就可以连,比如5已经被使用了,那1就可以连9 ...
- G面经prepare: Maximum Subsequence in Another String's Order
求string str1中含有string str2 order的 subsequence 的最小长度 DP做法:dp[i][j]定义为pattern对应到i位置,string对应到j位置时,shor ...
- G面经prepare: Set Intersection && Set Difference
求两个sorted数组的intersection e.g. [1,2,3,4,5],[2,4,6] 结果是[2,4] difference 类似merge, 分小于等于大于三种情况,然后时间O(m+n ...
- G面经prepare: Reorder String to make duplicates not consecutive
字符串重新排列,让里面不能有相同字母在一起.比如aaabbb非法的,要让它变成ababab.给一种即可 Greedy: 跟FB面经Prepare task Schedule II很像,记录每个char ...
- G面经prepare: Data Stream Average
给一个datastream和一个fixed window size, 让我design一个class可以完成add number还有find average in the window. 就是不能用v ...
- G面经prepare: Jump Game Return to Original Place
第二题 算法 给你一个arr 返回 T 或者 F arr的每个数代表从这个点开始跳几部,返回T的情况:从这个arr中任意一个数开始跳,可以在每个元素都跳到且只跳到一次的情况下返回到开始跳的元素 比如[ ...
- G面经prepare: Sort String Based On Another
Given a sorting order string, sort the input string based on the given sorting order string. Ex sort ...
随机推荐
- shell的if else 以及大于,小于等逻辑表达式
if ....; then .... elif ....; then .... else .... fi 大多数情况下,可以使用测试命令来对条件进行测试.比如可以比较字符串.判断文件是否存在及是否可读 ...
- java CyclicBarrier
import java.io.IOException; import java.util.Random; import java.util.concurrent.BrokenBarrierExcept ...
- taocode
http://code.taobao.org/project/lang/list/Go/1/
- HTML5 测验记录
结果:11/20 您的回答: 1.HTML5 之前的 HTML 版本是? 您的回答:HTML 4 正确答案:HTML 4.01 2.HTML5 的正确 doctype 是? 您的回答:<!DOC ...
- Eclipse反编译插件JadEclipse 【转】
JAVA的反编译插件JadEclipse,官网地址为:http://java.decompiler.free.fr/ 这里面有3个,Jad-Gui大家都知道是一个单独的可执行程序,把要反编绎的jar直 ...
- HTML5 本地存储 LocalStorage
说到本地存储,这玩意真是历尽千辛万苦才走到HTML5这一步,之前的历史大概如下图所示: 最早的Cookies自然是大家都知道,问题主要就是太小,大概也就4KB的样子,而且IE6只支持每个域名20个co ...
- PHP 依赖注入 (转)
说这个话题之前先讲一个比较高端的思想--'依赖倒置原则' "依赖倒置是一种软件设计思想,在传统软件中,上层代码依赖于下层代码,当下层代码有所改动时,上层代码也要相应进行改动,因此维护成本较高 ...
- (转) java 简单工厂模式(实现一个计算器)
package com.simpleFactory; /** * 运算类 * @author Administrator * */ public class Operation { private d ...
- 日志案例分析(PV,UV),以及动态分区
1.实现的流程 需求分析 时间:日,时段 分区表:两级 PV UV 数据清洗 2015-08-28 18:19:10 字段:id,url,guid,tracktime 数据分析 导出 2.新建源数据库 ...
- Angular自动双向绑定值
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> ...