Advertisement
jinhuang1102

925. Long Pressed Name

Oct 20th, 2018
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.69 KB | None | 0 0
  1. class Solution:
  2.     def isLongPressedName(self, name, typed):
  3.         """
  4.        :type name: str
  5.        :type typed: str
  6.        :rtype: bool
  7.        """
  8.         if not typed:
  9.             return False
  10.        
  11.         s1 = len(name)
  12.         s2 = len(typed)
  13.        
  14.         if s1 > s2:                        #如果 typed 的长度小于 name 的长度, return False
  15.             return False
  16.        
  17.         i = 0
  18.         j = 0
  19.        
  20.         #在这个while loop 一定要用 and 否则就会IndexError: string index out of range。
  21.         #For example: name = "vtkgn" typed = "vttkgnn"
  22.         while i < s1 and j < s2:            
  23.             if name[i] == typed[j]:        #如果在当前位两个string相等,继续找下一位
  24.                 i = i + 1
  25.                 j = j + 1
  26.             else:                      
  27.                 if typed[j] == typed[j-1]: #因为typed有重复的letter,所以如果当前位与前一位的char相等说明是重复
  28.                     j = j + 1              
  29.                 else:                      #如果与前一位不重复,则说明是错误的letter
  30.                     return False
  31.                
  32.         if i != s1:                        #这一步是要看name是否走完,如果没走完那就说明typed里面缺少某个letter    
  33.                                            # For example: "alex" "aaleeee"
  34.             return False            
  35.        
  36.         while j < s2:                      #这一步是检查typed 尾部letter的
  37.             if typed[j] != name[-1]:       # For example: name = "alex" typed = "alexxl"
  38.                 return False
  39.             j = j + 1
  40.        
  41.         return True
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement