タグ付けされた質問 「palindrome」

22
指定された文字列で最長の回文を返す関数を記述します
たとえば、文字列「abaccddccefe」の「ccddcc」 私は解決策を考えましたが、O(n ^ 2)時間で実行されます アルゴ1: 手順:そのブルートフォースメソッド i = 1からiまでのarray.length未満の2 forループがある j = i + 1からarray.length未満のjまでの -1 このようにして、配列から可能なすべての組み合わせの部分文字列を取得できます 文字列が回文かどうかをチェックする回文関数を持っている したがって、すべての部分文字列(i、j)についてこの関数を呼び出します。回文式の場合は、文字列変数に格納します。 次の回文の部分文字列が見つかり、それが現在のものよりも大きい場合は、現在のものと置き換えます。 最後に、文字列変数に答えがあります 問題:1.このアルゴはO(n ^ 2)時間で実行されます。 アルゴ2: 文字列を逆にして別の配列に格納します 次に、両方の配列の間で最大の一致する部分文字列を見つけます しかし、これもO(n ^ 2)時間で実行されます より良い時間に実行されるアルゴを想像できますか?可能であればO(n)時間

30
正規表現を使用して文字列が回文であることを確認するにはどうすればよいですか?
それは私が答えることができなかったインタビューの質問でした: 正規表現を使用して文字列が回文であることを確認するにはどうすればよいですか? psすでに「指定された文字列が回文かどうかを確認する方法は?」という質問があり、さまざまな言語で多くの回答が得られますが、正規表現を使用する回答はありません。
93 regex  palindrome 

30
回文のチェック文字列
パリンドロームは、単語、語句、数字またはいずれの方向にも同じように読み取ることができる装置の他のシーケンスです。 単語が回文かどうかを確認するには、単語のchar配列を取得して、charを比較します。私はそれをテストしました、そしてそれはうまくいくようです。しかし、私はそれが正しいかどうか、または改善する必要があるかどうかを知りたいです。 これが私のコードです: 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 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.