前言:
此时咱们对“正则python获取字符串后面的字母”可能比较关心,大家都想要分析一些“正则python获取字符串后面的字母”的相关资讯。那么小编同时在网上网罗了一些对于“正则python获取字符串后面的字母””的相关文章,希望看官们能喜欢,兄弟们快快来学习一下吧!题目:
给定字符串target 和source,判断target是否为source的子序列,target和source中仅包含英文小写字母,字符串source可能会很长(长度 ~=500000),而target是一个短字符串,长度(<=100)。
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"abc"是"aebycd"的一个子序列,而"ayb"不是)。
请找出最后一个子序列的起始位置。
我们使用Python来实现这道题目:
def main(target, source): target_letter_re = r'[a-z]{0,100}$' source_letter_re = r'[a-z]{0,500000}$' target_result = re.match(target_letter_re,target) if not target_result: print('target str is invalid!') return False source_result = re.match(source_letter_re,source) if not source_result: print('source str is invalid!') return False target_len = len(target) -1 source_len = len(source) -1 index_list = [] while target_len >=0: index = 0 while source_len >=0: if target[target_len] == source[source_len]: index = source_len index_list.append(index) source_len -=1 break else: index = source_len source_len -=1 continue target_len -=1 if len(index_list) == len(target): print(f"True,{index_list[-1]}") else: print("False")if __name__ == '__main__': input_target = input("target:") input_source = input("source:") main(input_target,input_source)