题目:
你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。
你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True。
算法:
方法一:模拟
func isLongPressedName(name string, typed string) bool {
i, j := 0, 0
n, m := len(name), len(typed)
for i < n && j < m {
if name[i] != typed[j] {
break
}
ii, jj := i, j
for ii < n && name[i] == name[ii] {
ii ++
}
for jj < m && typed[j] == typed[jj] {
jj ++
}
// fmt.Println(ii, i, jj, j)
if ii - i > jj - j {
break
}
i = ii
j = jj
}
// fmt.Println(i, j)
return i == n && j == m
}