算法代码编程范式
自顶向下编程范式
关键是要先解决最上层的主干逻辑
1.首先思考主干逻辑,不要纠结于具体细节
2.主干逻辑编写好后再一步一步实现主干逻辑的子函数
实例操作
验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写
设计步骤
1.先想好整个入口函数的整体逻辑
1.先过滤掉字符串中所有非字母和数字 设计函数filterNonNumberAndChar(s)
2.把过滤后的字符串进行反转 reverseString(filterds)
3.比较反转前和反转后的两个字符串是否相等 reverseds.upper() == filterds.upper()

主函数实现完成后相当于整个程序的骨架基本搭建完成,接下来实现主函数里被调用的子函数即可
2.实现子函数filterNonNumberAndChar(s)

3.实现子函数reverseString(filterds)

4.调试程序

#1.先想好整个入口函数的整体逻辑 #这个是主函数的逻辑 #主函数里面调用的子函数可以先不实现,规定好子函数的参数和返回值即可 def isPalindrome(s): #1.先过滤掉字符串中所有非字母和数字 filterds = filterNonNumberAndChar(s) #2.把过滤后的字符串进行反转 reverseds = reverseString(filterds) #3.比较反转前和反转后的两个字符串是否相等 return reverseds.upper() == filterds.upper() #把主函数里面的逻辑写好之后 再来实现其调用的子函数 #2.实现主函数中调用的子函数filterNonNumberAndChar def filterNonNumberAndChar(s): newStr=''.join(list(filter(str.isalnum,s))) return newStr #3.实现主函数中调用的子函数reverseString 对字符串进行反转 def reverseString(filterds): return filterds[::-1] if __name__ == "__main__": re=isPalindrome("race a car") print(re)
leetcode提交测试

leetcode的调用入口是Solution自定义类下的isPalindrome函数,这和本地的开发调试入口有区别
本文来自博客园,作者:不懂123,转载请注明原文链接:https://www.cnblogs.com/yxh168/articles/12550423.html
浙公网安备 33010602011771号