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

您应该使用 getModifiers 方法。


if ((e.getKeyCode() == KeyEvent.VK_C) && ((e.getModifiers() & KeyEvent.CTRL_MASK) != 0)) { 

//Your code here }

请注意,使用 & 运算符是因为它是一个位比较操作。


慕勒3428872
浏览 114回答 1
1回答

尚方宝剑之说

基本上,你的算法的时间复杂度是 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)如何降低时间复杂度?动态规划应该是答案
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java