問題タブ [palindrome]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
10 に答える
40540 参照

algorithm - Manacher のアルゴリズム (線形時間で最長の回文部分文字列を見つけるアルゴリズム)

Manacher のアルゴリズムを理解するのに約 6 ~ 8 時間費やした後、タオルを投げる準備が整いました。しかし、その前に、最後にもう 1 つ、暗がりで説明します。誰か説明してもらえますか? コードは気にしません。誰かにALGORITHMについて説明してもらいたいです。

これは、他の人がアルゴリズムを説明するのを楽しんでいるように見える場所のようです: http://www.leetcode.com/2011/11/longest-palindromic-substring-part-ii.html

「abba」などの文字列を #a#b#b#a# に変換したい理由は理解できます。たとえば、前述の Web サイトの作成者は、アルゴリズムの重要な部分は次のように述べています。

P[i'] = 7 で、P[i] が R - i 以下ではない場合、P[i] は 5 に等しいと彼/彼女はある時点で言っているので、これは間違っているようです。

アルゴリズムに慣れていない場合は、次のリンクを参照してください: http://tristan-interview.blogspot.com/2011/11/longest-palindrome-substring-manachers.html用語がひどくて紛らわしいです.まず、定義されていないものがあります.また、変数が多すぎます.どの変数が何を参照しているかを思い出すためのチェックリストが必要です.)

もう 1 つは: http://www.akalin.cx/longest-palindrome-linear-time (頑張ってください)

アルゴリズムの基本的な要点は、線形時間で最長の回文を見つけることです。最小から中程度の労力で O(n^2) で実行できます。このアルゴリズムは、O(n) に到達するために非常に「賢い」はずです。

0 投票する
1 に答える
1118 参照

algorithm - 特定の文字列で最長の回文を見つけるための最良のアルゴリズムはどれですか?

重複の可能性:
指定された文字列で最長の回文を返す関数を記述します

'n'の長さの文字列を考えると、時間と空間の複雑さが効率的であるはずの最長の回文が必要です。

誰かが少なくとも擬似コードで私を助けることができますか?

0 投票する
2 に答える
1343 参照

c# - 私のコードは、正の整数が与えられた次の回文を見つけるのに効率的ですか?

問題の説明:与えられた正の数について、私はすぐ次の回文を見つけなければなりません。例えば:

私のコードがまったく効率的かどうか、そしてそれはどれくらい効率的か知りたいですか?これは問題を解決するための良い方法ですか?

論理の説明:私はi数字の左端の位置に設定しj、右端の位置に基本的に2つの数字を比較しています。私は常に割り当てnum[j]=num[i]、数が元の値より大きくなるか、小さくなるか、または等しくなるかどうかを追跡します。つまり、j-i==1 or j==i偶数または奇数の桁数に応じて、数値が大きくなるかどうかを確認し、それに応じて判断します。

編集:数は最大100,000桁の長さになる可能性があります!..それは問題ステートメントの一部だったので、力ずくの方法を避けようとしています。

0 投票する
4 に答える
7858 参照

java - 文字を削除して、既存の文字列から回文を作成します

0個以上の文字を削除して、単語から取得できる最長の回文の長さを決定するにはどうすればよいですか。

例:amanQQQapl12345anacaZZZnalpaXXXna67890ma
最長の回文は21桁になります。

0 投票する
3 に答える
642 参照

python - ネストされたループを使用したパリンドロームのテスト

これが最も簡単で最も簡単なチェック方法であることを理解しています。

しかし、練習のために、ネストされたforループでテストしたかった(関数を使用して-私は何時間も費やしましたが、どこにそれを正しくするreversed()かを完全に理解することができませんでした:continuebreak

0 投票する
2 に答える
4966 参照

python - Pythonで3桁のすべての回文数のリストを生成します

Pythonで3桁のすべての回文数のリストを生成したいと思います。これは大雑把な方法でコーディングできますが、リスト内包表記などを使用した直感的な方法はありitertoolsますか?

kまた、数字が3ではなく数字である場合はどうすればよいですか?

0 投票する
1 に答える
12889 参照

php - PHPで整数が回文かどうかを確認しますか?

重複の可能性:
数値が回文かどうかを確認するにはどうすればよいですか?

整数を文字列として扱うことが許可されておらず、型キャストが許可されていない場合、数値が回文であるかどうかを (PHP で) どのように判断できますか?

私が思いついたプログラムは次のとおりです。

ステップ "$number/=10" で、生成される結果が整数にならず、問題が発生します。

0 投票する
5 に答える
23253 参照

algorithm - 文字列を最小限の挿入で回文文字列に変換します

特定の文字列を回文に変換するために必要な挿入の最小数を見つけるために、文字列(lcs_string)の最長共通部分列とその逆を見つけます。したがって、行われる挿入の数はlength(s)-length(lcs_string)です。

挿入の数を知る上で同等の回文文字列を見つけるには、どのような方法を採用する必要がありますか?

例えば ​​:

1)azbzczdzez

必要な挿入数:5回文文字列:azbzcezdzeczbza

同じ文字列に対して複数の回文文字列が存在する場合がありますが、1つの回文文字列のみを検索したいですか?

0 投票する
1 に答える
417 参照

java - javaはnext()を文字列に割り当てるか、文字に分割します

ファイルを読み取り、テキストが回文かどうかをチェックするプログラムを作成しようとしています。コードはコンパイルされますが、実際には機能しません。

push問題は、文字列の長さを使用して各文字または数字をstack(キュー)に (エンキュー)するために、完全なトークンを文字に分割する方法や文字列に割り当てる方法がわからないことです。誰でもこれに対する解決策を提案できますか?

0 投票する
3 に答える
460 参照

java - Java で乱数を回文に変換する

乱数を回文にしようとしています。たとえば、生成された乱数 1234 は 12344321 になるはずです。

だから私はこのコードを書いた:

うまくいくこともあり、たとえば、番号 6540 と回文 65400456 が表示されます。しかし、何らかの理由で、ほとんどの場合、番号 94229 と回文 833057657 が表示されます。または、番号 82270 と回文 -362927364 が表示されます。

なぜそれが起こっているのですか?このコードの何が問題で、どのように修正すればよいですか?

ありがとうございました!