为了账号安全,请及时绑定邮箱和手机立即绑定

使用递归查找字符串中最长的回文

使用递归查找字符串中最长的回文

慕勒3428872 2021-10-28 09:43:47
您应该使用 getModifiers 方法。if ((e.getKeyCode() == KeyEvent.VK_C) && ((e.getModifiers() & KeyEvent.CTRL_MASK) != 0)) { //Your code here }请注意,使用 & 运算符是因为它是一个位比较操作。
查看完整描述

1 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

基本上,你的算法的时间复杂度是 O(2^n)


假设f(n)是计算长度为字符串的回文的函数n,在最坏的情况下,我们可以看到


f(n) = 2*f(n - 1)

f(n - 1) = 2*f(n - 2)

...

f(1) = 1

->f(n)时间复杂度是O(2^n)


因此,对于长字符串,您的程序将需要很长时间才能运行。与示例中一样,具有 29 个字符的字符串将需要 O(2^29) 或 O(5*10^8) 次操作。


注意:实际上,每个操作都需要两个额外的substring和一个isPalindrome操作,这会使时间复杂度为 O(n*2^n),而不仅仅是 O(2^n)


如何降低时间复杂度?动态规划应该是答案


查看完整回答
反对 回复 2021-10-28
  • 1 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信