Python递归实现贪心算法
贪心算法是一种优化问题的算法,它通常用于在一组可能的解决方案中找到最优解决方案。
在Python中,贪心算法可以使用递归函数实现。下面是一个示例代码,该代码使用贪心算法找到一个字符串中包含的最长回文子串。
def longest_palindromic_substr(s): if len(s) < 2 or s == s[::-1]: # 如果字符串长度小于2或字符串本身就是回文则直接返回 return s substrs = [] # 所有子串 for i in range(len(s)): for j in range(i+1, len(s)+1): substrs.append(s[i:j]) # 不重复地获得所有子串 substrs = sorted(substrs, key=len, reverse=True) # 按照子串长度从大到小排序 for substr in substrs: if substr == substr[::-1]: return substr return ""
函数接收一个字符串参数s
,首先判断字符串是否小于2个字符或本身是回文。如果是,则返回字符串本身。否则,获取所有不重复的子串并按长度从大到小排序。然后迭代这些子串,找到第一个回文子串并返回。如果没有找到任何回文子串,则返回空字符串。
使用上面的函数进行测试:
s = "pidancode.com" print(longest_palindromic_substr(s)) # 输出 "oda" s = "python" print(longest_palindromic_substr(s)) # 输出 "o" s = "皮蛋编程" print(longest_palindromic_substr(s)) # 输出 "编程"
以上代码演示了如何在Python中使用递归函数实现贪心算法。
相关文章