相关疑难解决方法(0)

检查字符串是否为回文

回文是单词,短语,数字或的单元的其它序列可以读取在任一方向的方式相同.

为了检查单词是否是回文,我得到单词的字符数组并比较字符.我测试了它似乎工作.但是我想知道它是否正确或是否有待改进的地方.

这是我的代码:

public class Aufg1 {
    public static void main(String[] args) {
        String wort = "reliefpfpfeiller";
        char[] warray = wort.toCharArray(); 
        System.out.println(istPalindrom(warray));       
    }

    public static boolean istPalindrom(char[] wort){
        boolean palindrom = false;
        if(wort.length%2 == 0){
            for(int i = 0; i < wort.length/2-1; i++){
                if(wort[i] != wort[wort.length-i-1]){
                    return false;
                }else{
                    palindrom = true;
                }
            }
        }else{
            for(int i = 0; i < (wort.length-1)/2-1; i++){
                if(wort[i] != wort[wort.length-i-1]){
                    return false;
                }else{
                    palindrom = true;
                }
            }
        }
        return palindrom;
    } …
Run Code Online (Sandbox Code Playgroud)

java arrays string char palindrome

86
推荐指数
5
解决办法
32万
查看次数

回文检测效率

我对Jon Limjap的采访事故感到好奇,并开始寻找有效的方法进行回文检测.我检查了回文高尔夫答案,在我看来答案中只有两个算法,反转字符串并检查尾部和头部.

def palindrome_short(s):
    length = len(s)
    for i in xrange(0,length/2):
        if s[i] != s[(length-1)-i]: return False
    return True

def palindrome_reverse(s):
    return s == s[::-1]
Run Code Online (Sandbox Code Playgroud)

我认为这些方法都不能用于检测巨大DNA序列中的确切回文.我环顾四周,没有找到任何关于这种超高效方式的免费文章.

一种好的方法可能是以分而治之的方式并行化第一个版本,为每个线程或处理器分配一对char数组1..n和length-1-n..length-1.

什么是更好的方式?

你知道任何?

algorithm performance palindrome

15
推荐指数
1
解决办法
2万
查看次数

Java的String类中length()函数的复杂性是什么?

是O(n)还是O(1)(通过在对象的字符串分配期间保存私有变量的长度).

如果它是O(n),它是否意味着下面代码的复杂性是O(n ^ 2)?

for(int i=0; i<s.length()-1;i++){
    //some code here!
}
Run Code Online (Sandbox Code Playgroud)

java time-complexity

6
推荐指数
2
解决办法
3731
查看次数