跟着网络课程学了几个小程序。
1.判断a字符串是否为b字符串的子串
1 # coding = utf-8 2 3 # 判断str_a字符串是否为str_b字符串的子串 4 5 str_a = "欢迎" 6 str_b = "欢迎大家的到来" 7 8 9 def is_sub_str(sub_strs, strs): 10 """ 11 判断sub_strs是否为strs的子串 12 :param sub_strs: 待判断的子串 13 :param strs: 父串 14 :return: False|True 15 """ 16 if str_a in str_b: 17 return True 18 else: 19 return False 20 21 22 a = is_sub_str(str_a, str_b) 23 print(a)
2.对字符串进行循环右移操作,移动n步
1 # coding = utf-8 2 3 def right_move(strs, n_steps): 4 """对strs进行循环右移操作,移动n_strs步 5 :param strs: 待移动的串 6 :param n_steps: 移动步数 7 :return: 移动后的串 strs 8 """ 9 length = len(strs) 10 if length == 0: 11 return strs 12 ret_strs = strs[-n_steps:]+strs[:-n_steps] 13 return ret_strs 14 15 move = right_move("abcdefg",1) 16 print(move)
3.判断sub_str是否为strs循环右移后的串的子串(调用前两个的函数)
1 # coding = utf-8 2 3 str_a = "欢迎" 4 str_b = "欢迎大家来到动脑学院" 5 6 # 判断sub_strs是否为strs的子串 7 def is_sub_str(sub_strs, strs): 8 """ 9 判断sub_strs是否为strs的子串 10 :param sub_strs: 待判断的子串 11 :param strs: 父串 12 :return: False|True 13 """ 14 if str_a in str_b: 15 return True 16 else: 17 return False 18 19 20 # 判断str_a是否为str_b通过循环右移N位产生的串的子串 21 def right_move(strs, n_steps): 22 """ 23 对strs进行循环右移操作,移动n_strs步 24 :param strs: 待移动的串 25 :param n_steps: 移动步数 26 :return: 移动后的串 strs 27 """ 28 length = len(strs) 29 if length == 0: 30 return strs 31 ret_strs = strs[-n_steps:]+strs[:-n_steps] 32 return ret_strs 33 34 35 def can_rotate_get_substrs(strs, sub_str): 36 """ 37 判断sub_str是否为strs循环右移后的串的子串 38 :param strs: 39 :param sub_str: 40 :return: 41 """ 42 length = len(strs) 43 for i in range(length): 44 if is_sub_str(sub_str, right_move(strs, 1)): 45 return True 46 return False 47 48 49 flag = can_rotate_get_substrs(str_b, str_a) 50 print(flag)