python算法练习

在这里插入图片描述

class Solution:
    def getLongestPalindrome(self,A: str,n: int) -> int:
      	#翻转母串
        str_new=A[::-1]
        most_length = 0
        # 在母串和翻转串中找公共子串
        for i in range(n):
            for j in range(i+1,n+1):
                temp_str = A[i:j]
                #判断公共子串翻转后,等于自身。
                if temp_str in str_new and temp_str == temp_str[::-1]:
                    if j-i > most_length:
                        most_length = j-i
        return most_length

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param A string字符串 
# @return int整型
#
class Solution:
    def getLongestPalindrome(self , A: str) -> int:
        # write code here
        count= []
        flag = 1
        n= len(A)
        for i in range(1, n+1):
            for j in range(0, n-i+1):
                if A[j:i+j] == A[j:i+j][::-1]:
                    flag = i
                else:continue
            count.append(flag)
        return max(count)

在这里插入图片描述

# -*- coding:utf-8 -*-
class Solution:
    def Fibonacci(self, n):
        # write code here
        #斐波拉契数的边界条件: F(0)=0 和 F(1)=1
        if n < 2:
            return n
        else:
            a, b = 0, 1
            for i in range(n-1):
                a, b = b, a + b        #状态转移方程,每次滚动更新数组

            return b
def fbi(n):
	if n == 1 or n == 2:
		return 1
	else:
		return fbi(n-1) + fbi(n-2)
n = eval(input())
print(fbi(n))		

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值