# LC 925. Long Pressed Name ### [Problem link](https://leetcode.com/problems/long-pressed-name/) ###### tags: `leedcode` `python` `c++` `easy` `Two Pointer` Your friend is typing his <code>name</code> into a keyboard. Sometimes, when typing a character <code>c</code>, the key might get long pressed, and the character will be typed 1 or more times. You examine the <code>typed</code> characters of the keyboard. Return <code>True</code> if it is possible that it was your friends name, with some characters (possibly none) being long pressed. **Example 1:** ``` Input: name = "alex", typed = "aaleex" Output: true Explanation: 'a' and 'e' in 'alex' were long pressed. ``` **Example 2:** ``` Input: name = "saeed", typed = "ssaaedd" Output: false Explanation: 'e' must have been pressed twice, but it was not in the typed output. ``` **Constraints:** - <code>1 <= name.length, typed.length <= 1000</code> - <code>name</code> and <code>typed</code> consist of only lowercase English letters. ## Solution 1 - Two Pointer #### Python ```python= class Solution: def isLongPressedName(self, name: str, typed: str) -> bool: i = 0 for j in range(len(typed)): if i < len(name) and typed[j] == name[i]: i += 1 elif i == 0 or typed[j] != name[i - 1]: return False return i == len(name) ``` #### C++ ```cpp= class Solution { public: bool isLongPressedName(string name, string typed) { int p1 = 0; int p2 = 0; while (p2 < typed.size()) { if (p1 < name.size() && typed[p2] == name[p1]) { p1++; } else if (p1 == 0 || typed[p2] != name[p1 - 1]) { return false; } p2++; } return p1 == name.size(); } }; ``` >### Complexity >n = typed.length >| | Time Complexity | Space Complexity | >| ----------- | --------------- | ---------------- | >| Solution 1 | O(n) | O(1) | ## Note x