Advertisement
valerio_mazza

Funzione rfind e find

Nov 17th, 2019
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.23 KB | None | 0 0
  1. def find_string(string, find, start = None, end = None):
  2. # @param string, find: Str.
  3. # @param start, end: Int. Both are optional
  4.   if start == None:
  5.     start = 0
  6.   if end == None:
  7.     end = len(string)
  8.   for posS in range(start,end):
  9.     if string[posS] == find[0]:
  10.       if check_find(posS, string, find):
  11.         return posS
  12.   return -1      
  13.  
  14. def check_find(posS, string, find) :  
  15.   posS += 1
  16.   posF = 1
  17.   while posF < len(find):
  18.     if not (string[posS] == find[posF]):
  19.       return False
  20.     posF, posS = posF+1, posS+1
  21.   return True
  22.  
  23. ##################################################################  
  24.  
  25. def rfind_string(string, find, start = None, end = None):
  26. # @param string, find: Str.
  27. # @param start, end: Int. Both are optional
  28.   if start == None:
  29.     start = -1
  30.   if end == None:
  31.     end = len(string)-1
  32.   for posS in range(end,start,-1):
  33.     if string[posS] == find[len(find)-1]:
  34.       check = check_rfind(posS, string, find)
  35.       if check != "False":
  36.         return check
  37.   return -1  
  38.  
  39. def check_rfind(posS, string, find) :
  40.   F = "False"
  41.   posF = len(find)-1
  42.   while posF >= 0 :
  43.     if not (string[posS] == find[posF]):
  44.       return F
  45.     posF, posS = posF-1, posS-1  
  46.   return posS +1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement