leetcode 925. Long Pressed Name
判定是否长按
var isLongPressedName = function (name, typed) {
var i = 1, j = 0, n = name.length, m = typed.length;
var last = name[0], iCount = 1
while (i < n || j < m) {
var el = name[i];
if (el !== last) {
if (iCount !== 0) {
let jCount = 0
// console.log("j", j, m)
while (j < m) {
console.log("内循环", last, typed[j], j)
if (typed[j] !== last) {
break //跳到外循环
}
j++
jCount++
}
if (jCount < iCount) {
return false
}
if (j == m && i < n) {
return false
}
}
last = el
iCount = 1
} else {
console.log("累加", el)
iCount++
}
i++
}
return true
};
console.log(isLongPressedName("alex", "aaleex"))
console.log(isLongPressedName("saeed", "ssaaedd"))
console.log(isLongPressedName("pyplrz", "ppyypllr"))
更精简的实现
var isLongPressedName = function(name, typed) {
let j = 0;
for (let i = 0; i < typed.length; i++) {
if(name[j] == typed[i]) j++;
}
return j == name.length;
};
另一个
var isLongPressedName = function (name, typed) {
let nlen = name.length, tlen = typed.length;
if (nlen > tlen) return false;
let i = 0, j = 0;
while (i < nlen && j < tlen) {
let nc = name.charAt(i);
let tc = typed.charAt(j);
if (nc == tc) {
i++;
j++;
} else {
if (j == 0 || tc != typed.charAt(j - 1)) {
return false;
}
j++;
}
}
return i == nlen;
};
leetcode 925. Long Pressed Name的更多相关文章
- [LeetCode] 925. Long Pressed Name 长按键入的名字
Your friend is typing his name into a keyboard. Sometimes, when typing a character c, the key might ...
- 【Leetcode_easy】925. Long Pressed Name
problem 925. Long Pressed Name solution1: class Solution { public: bool isLongPressedName(string nam ...
- 【LeetCode】925. Long Pressed Name 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 参考资料 日期 题目地址:https://leetc ...
- [LeetCode&Python] Problem 925. Long Pressed Name
Your friend is typing his name into a keyboard. Sometimes, when typing a character c, the key might ...
- 【leetcode】925.Long Pressed Name
题目如下: Your friend is typing his name into a keyboard. Sometimes, when typing a character c, the key ...
- 925. Long Pressed Name
题目链接:https://leetcode.com/problems/long-pressed-name/description/ Example 1: Input: name = "ale ...
- leetcode 925. 长按键入
题目描述: 你的朋友正在使用键盘输入他的名字 name.偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次. 你将会检查键盘输入的字符 typed.如果它对应的可能是你的朋友的 ...
- 算法与数据结构基础 - 双指针(Two Pointers)
双指针基础 双指针(Two Pointers)是面对数组.链表结构的一种处理技巧.这里“指针”是泛指,不但包括通常意义上的指针,还包括索引.迭代器等可用于遍历的游标. 同方向指针 设定两个指针.从头往 ...
- LeetCode.925-长按的名字(Long Pressed Name)
这是悦乐书的第355次更新,第380篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第217题(顺位题号是925).你的朋友正在键盘上输入他的名字. 有时,在键入字符c时, ...
随机推荐
- 在vue中使用elementUI饿了么框架使用el-calendar日历组件,实现自定义显示备忘录标注
饿了么官网给的自定义例子是点击哪个日期在日期后面加个勾 而我们想要的是显示备忘录,像这样↓,日历上直接显示 这时候我们要把template里的代码改一下 <el-calendar> < ...
- gulp常用插件之gulp-postcss使用
更多gulp常用插件使用请访问:gulp常用插件汇总 ** gulp-postcss**这是一款通过多个插件通过管道传递CSS,但是仅解析一次CSS. 更多使用文档请点击访问gulp-postcss工 ...
- node常用模块汇总
node常用模块汇总: 点击插件名字,查看使用文档 npm常用模块汇总 node常用模块汇总 gulp常用插件汇总 mkdirp:在node.js中像mkdir -p一样递归创建目录及其子目录
- 【PHP】使用PHP抓取Bing每日图像并为己所用
Bing搜索的首页每天都会推送一张很漂亮的图片,把它保存下来,当做电脑桌面或是自己的网站背景图还不是美滋滋…… 今天的bing图片是这样的 既然要抓取这张图片,首先就得弄清这张图是从何而来的.经过对必 ...
- 论文阅读笔记(十二)【CVPR2018】:Exploit the Unknown Gradually: One-Shot Video-Based Person Re-Identification by Stepwise Learning
Introduction (1)Motivation: 大量标记数据成本过高,采用半监督的方式只标注一部分的行人,且采用单样本学习,每个行人只标注一个数据. (2)Method: 对没有标记的数据生成 ...
- Unity踩坑记录
最近开始学习Unity,因为会一点儿C#,Delphi,Python,三种都是半桶水都算不上的级别. 首先排除了Python,其次delphi是我最喜欢的,奈何它目前我能了解到的引擎都很老了,dilp ...
- 五、JVM之堆内存
堆结构分代图 堆结构分代的意义 Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代.老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略. 堆内存是虚拟机管理 ...
- P3329 [ZJOI2011]最小割
题目描述 小白在图论课上学到了一个新的概念--最小割,下课后小白在笔记本上写下了如下这段话: 对于一个图,某个对图中结点的划分将图中所有结点分成两个部分,如果结点 s 和 t 不在同一个部分中,则称这 ...
- 发邮件python
import smtplib #smtplib是python的一个内置库,所以不需要用pip安装 mailhost='smtp.qq.com' #把qq邮箱的服务器地址赋值到变量mailhost上 q ...
- Python基本数据类型set方法概述
li=[1,2,3,4,5,6,3,2,1] s2 = set(li) print(set(li)) #difference()去除相同项,生成一个新的集合,删除 s3=s2.difference([ ...