Python 有S1和S2的字符串,S2是S1的子串,输出S1中不含S2的字符串

发布时间 2023-06-12 12:01:58作者: hnfangh

 

思路:

  1. 先做替换,把S1与S2相同的子串替换为空

  2. 有坑:第一步替换后,可能会出现新的字符串有包含S1中

  3. 利用递归再去替换

  

 1 a = "tomcat is a bigccatat and smallcacatt-yyds"
 2 b = "cat"
 3 
 4 def A(a,b):  
 5     if b not in a:  # 先给个递归出口,不包含的时候返回a值(不然容易Si循环)
 6         return a
 7     else:  # 包含的时,进行替换操作
 8         s = a.replace("cat", "")  # 替换之后返回一个新的字符串,把新的字符串重新赋值给a
 9     return A(s,b)  # 再次返回A()做下一次的递归
10 
11 print(A(a,b))

 

输出:

>> tom is a big and small-YYDS