#coding: utf-8
#字符串从反向拆词
def string_depart(str1):
ls_str1 = []
str_tmp = ""
for str_t in reversed(str1):
str_tmp = str_t + str_tmp
ls_str1.append(str_tmp)
return ls_str1
#i.e. str1 = "abcdef" str2 = "defdefghi" ,return "abcdefghi"
def string_cut_pre_duplicate(str1,str2):
ls_str1 = string_depart(str1)
str2_tmp = str2
for str1_tmp in ls_str1:
str2_tmp = string_cut_pre_duplicate_2(str1_tmp,str2_tmp)
return str(str1) + str(str2_tmp)
#如果str2中,以str1开头,则去掉,如果str2中,有重复的str1开头,也去掉
def string_cut_pre_duplicate_2(str1,str2):
if str2 and str2.find(str1) == 0 :
return string_cut_pre_duplicate_2(str1,str2[len(str1):])
return str2
if __name__ == "__main__":
print string_cut_pre_duplicate("abcdef","defdefghi")
print string_cut_pre_duplicate("abc","defdefghi")
print string_cut_pre_duplicate("def","defdefghi")
print string_cut_pre_duplicate("abcdef","defdef")
print string_cut_pre_duplicate("","defdefghi")
print string_cut_pre_duplicate("abcdef","")
print string_cut_pre_duplicate("f","f")