您应该使用 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)
如何降低时间复杂度?动态规划应该是答案
添加回答
举报
0/150
提交
取消