python实现:最长子字符串


给定一个字符串 s 和正整数 n,
请使用你熟悉的编程语言输出 s 中包含不超过 n 种字符的最长子串,
如 s="uabbcadbaef",n=4 时应该输出 "abbcadba"。

 1 # 判断一个字符串里面有几个不同字目
 2 def count_diff(s):  3     arr = []  4     for i in s:  5         if i not in arr:  6  arr.append(i)  7     return len(arr)  8 
 9 # 获得最长子串
10 def get_longest_str( s, n ): 11     res_temp = ''
12     length = len(s) 13     for i in range(length-n): 14         for j in range(i,length): 15             str_temp = s[i:j] 16             if count_diff( str_temp )<=n and  len(str_temp)>len(res_temp): 17                 res_temp = str_temp 18     return res_temp 19 
20 if __name__ == '__main__': 21     s = "uabbcadbaef"
22     n = 4
23     res = get_longest_str( s,n ) 24     print( res )

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM