Go•long-pressed-name/solution.go
package main
func isLongPressedName(name string, typed string) bool {
i, j := 0, 0
for i < len(name) && j < len(typed) {
if name[i] != typed[j] {
return false
}
character := name[i]
nameCount, typedCount := 0, 0
for i < len(name) && name[i] == character {
i++
nameCount++
}
for j < len(typed) && typed[j] == character {
j++
typedCount++
}
if typedCount < nameCount {
return false
}
}
return i == len(name) && j == len(typed)
}
Python•long-pressed-name/solution.py
class Solution:
def isLongPressedName(self, name: str, typed: str) -> bool:
i = j = class="syntax-number">0
while i < len(name) and j < len(typed):
if name[i] != typed[j]: return False
character = name[i]
name_count = typed_count = class="syntax-number">0
while i < len(name) and name[i] == character: i, name_count = i + class="syntax-number">1, name_count + class="syntax-number">1
while j < len(typed) and typed[j] == character: j, typed_count = j + class="syntax-number">1, typed_count + class="syntax-number">1
if typed_count < name_count: return False
return i == len(name) and j == len(typed)
TypeScript•long-pressed-name/solution.ts
function isLongPressedName(name: string, typed: string): boolean {
let i = class="syntax-number">0;
let j = class="syntax-number">0;
while (i < name.length && j < typed.length) {
if (name[i] !== typed[j]) return false;
const character = name[i]; let nameCount = class="syntax-number">0; let typedCount = class="syntax-number">0;
while (i < name.length && name[i] === character) { i += class="syntax-number">1; nameCount += class="syntax-number">1; }
while (j < typed.length && typed[j] === character) { j += class="syntax-number">1; typedCount += class="syntax-number">1; }
if (typedCount < nameCount) return false;
}
return i === name.length && j === typed.length;
}