扫码关注官方订阅号
认证高级PHP讲师
试着写了递归和非递归的算法
# -*- coding: utf-8 -*- def isPlidromNonRecursive(inputStr): assert isinstance(inputStr, basestring) strLen = len(inputStr) currentStart = 0 currentEnd = strLen - 1 while currentStart <= currentEnd: if inputStr[currentStart] != inputStr[currentEnd]: return False else: currentStart += 1 currentEnd -= 1 return True def isPlidromRecursive(inputStr): assert isinstance(inputStr, basestring) if 0 <= len(inputStr) <= 1: return True if inputStr[0] != inputStr[-1]: return False else: return isPlidromRecursive(inputStr[1:-1]) def test_isPlidromNonRecursive(): assert isPlidromNonRecursive("level") assert isPlidromNonRecursive("noon") assert isPlidromNonRecursive("abcd") == False def test_isPlidromRecursive(): assert isPlidromRecursive("level") assert isPlidromRecursive("noon") assert isPlidromRecursive("abcd") == False if __name__ == '__main__': test_isPlidromNonRecursive() test_isPlidromRecursive()
isPlidrom(obj[1:-1]),但不建议这么写。建议再加一个函数,写成 isP(obj,from,to),如果你一定要用递归实现的话。主函数写isP(obj,0,len(obj))
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
试着写了递归和非递归的算法
isPlidrom(obj[1:-1]),但不建议这么写。建议再加一个函数,写成 isP(obj,from,to),如果你一定要用递归实现的话。主函数写isP(obj,0,len(obj))