問題タブ [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 投票する
5 に答える
20663 参照

prolog - Prolog-パリンドロームファンクター

私はpalindrome/1、そのリスト入力が回文リストで構成されている場合にのみ真である述語をPrologに書き込もうとしています。

例えば:

本当です。

アイデアや解決策はありますか?

0 投票する
0 に答える
276 参照

trie - 最長回文部分文字列のストリーム バリアント

入力として文字ストリームがあるとします。

文字列全体 を最初から
再処理せずに、新しい文字が追加されるたびに最も長い回文部分文字列を見つける最適な方法は何ですか?


新しい文字が入力されるたびに、以前に処理された文字列 に移動することは避けたいと思います。

使用できるツリー データ構造はあります
か。 1. 新しいキャラクターごとに最初から再構築しないこと。
2. 文字列が徐々に長くなるにつれて、ノードとリーフをシフトできる場所。

文字列用 (プレフィックス ツリー) と
文字列の反転用 (サフィックス ツリー) の 2 つのツリーを構築する場合はどうでしょうか。

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

java - 回文関数の再帰

私の isPalindrome(int) 関数の何が問題なのかを誰かが教えてくれますか?

基本的に、この関数は数値が回文であるかどうかをチェックします。これを再帰によって実現したかったのです。関数内で isPalindrome(int) を呼び出すと、問題が発生します。これは私の多くの頭痛をもたらしました。ありがとう!

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

c++ - 文中の回文の数を数える

みなさん、良い一日を!以下は、ユーザーに文を要求し、文中の回文の数を出力するプログラムです。

それはうまく動作します。しかし、例えば「ザ・クイック・ブラウン・ギャグには青い目があります。」と入力すると、プログラムが表示する回文の数は 1 つだけですが、実際には文にはギャグと目の 2 つの回文があります。問題は、「目」という言葉にピリオドがあることです。では、たとえばユーザーが「正午、夕方、真夜中が大好き」と入力したときに、ピリオドやコンマなどの他の句読点をプログラムが無視するにはどうすればよいでしょうか。正午は回文ですが、プログラムはコンマのために認識しません。

もう1つの問題は大文字化です。ユーザーが「マダム、私の仕事は終わりました」と入力したときに、このプログラムが動作するようにしたい (そして ASCII に相当するものを無視する)。tolowerと関係があることはわかっています。

要約すると、このプログラムには、 a)句読点を無視し、b)大文字化を無視する機能が必要です。

そして、ああ、「 stringstream processtokens(sentence);... 」の代替は何ですか? むしろ、このプログラムで部分文字列 (substr) と findを使用する必要があります。

皆さん、私を導いてください!ありがとうございました。どんな種類の助けも大歓迎です。改めまして、良い一日を!

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

c++ - 「ma'am」という単語を入力すると、プログラムはそれを回文としてカウントしません

ここに、1文の回文数を出力するプログラムがあります。大文字と小文字を区別せず、たとえば回文が文の最後の単語である場合は、コンマとピリオドを無視します。

「ma'am」という単語がある場合を除いて、プログラムは正しく実行されます。たとえば、「こんにちは、奥様!私は綾です。」入力すると、プログラムは1を出力します。これは、1つの回文であるAyaを意味します。「ma'am」はアポストロフィのため含まれていません。

具体的なコードを教えていただければ幸いですので、何を変更すればよいかわかりやすくなります。それでも、どんな種類の助けにも感謝します。:)

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

java - ループとスタック、回文の宿題

プログラミング クラスの課題に取り組んでいますが、問題が発生したため、他にどこを見ればよいかわかりません。基本的に、質問は回文をチェックするプログラムを書くことを求めています。

  • ユーザーがテキストを入力します (英数字以外の文字は使用できません)。
  • String は一度に 1 文字ずつスタックにプッシュされます
  • 文字は一度に 1 つずつスタックから引き出され、文字列が逆になります。
  • 元が逆と同じ場合、回文があります

ループに問題がありますが、ここからどこに行けばよいかわかりません。誰かアドバイスや指針はありますか? 私は何を間違っていますか?

これが私がこれまでに持っているものです。

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

java - 再帰的なisPalindrome関数はどのように機能しますか?

私はいくつかの入門的な再帰の問題に取り組んでおり、答えてもらいたい明確な質問があります。私が持っている最も厄介な質問は、この再帰が以下の解決された問題でどのように機能しているかということです。

問題を解決したにもかかわらず、再帰呼び出しがどのように文字列の内部に入るのか理解していません。コードを見るだけで、このメソッドは、指定された文字列の両端の2つの文字のみをチェックし、残りの文字はチェックしないように見えます。私の教科書は、基本的に、returnステートメントが問題を解決する限り、再帰がどのように機能するかについて心配しないでくださいという非常に不満足な答えを提供します。しかし、ループをトレースするのと同じ方法で再帰メソッドをトレースする方法を理解せずに、後続の再帰問題にアプローチする方法を知るのは困難です。

知恵の言葉をいただければ幸いです。

ありがとう!

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

string - 次の Clojure が回文を検出しないのはなぜですか?

文字列に変換して逆と比較しようとしているだけです

何かのようなもの

false を返す

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

c - C の回文に関する問題

数値が回文であるかどうかを調べ、C でいくつかのコードを書きました。ルールは、2 つの 3 桁の数字を掛け合わせて、最大の回文を見つけなければならないというものです。答えは 906609 のはずですが、私のコードは 580085 しかありません。

コード:

私はそれがばかげた答えであると確信しており、単純なものを探していますが、見つけられないようです。どんな助けでも素晴らしいでしょう

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

string - 単語が与えられたら、最小限の文字の追加で回文に変換します

これは非常に興味深いインタビューの質問です:

単語が与えられたら、それに最も少ない数の文字を追加して、回文に変換します。

たとえば、「hello」が指定された文字列である場合、結果は「hellolleh」になります。「coco」を指定すると、「cococ」になります。

私が考えることができる1つのアプローチは、元の文字列の最後に文字列の逆を追加してから、最後から余分な文字を削除することです。しかし、これを効率的に行う方法がわかりません。誰かアイデアはありますか?