0

私はプログラミングにとても慣れておらず、Rubyの初心者です。私は必要な答えを見つけるためにたくさんの検索をしましたが、私が探しているものと一致するものは何もないようです。

次のような作業用のプログラムを作成する必要があります。

  1. ユーザーからキーワードを取得する
  2. それらのキーワードを文のデータベース内の同じキーワードと一致させてから、
  3. 次のようなランダム化された文を吐き出します。
    1. すべてのキーワードを1回含む
    2. リストされていないキーワードを含まない
    3. キーワードを複製しないでください

知っておくべき重要事項:文にはすべて、文ごとに1つではなく、複数のキーワードが混在しています。

1と2は大丈夫です、私はそれらをすることができました。私の問題はパート3にあります。「含める場合」の長いリストを試しました。パラメータですが、それが機能することは決してなく、これを行うためのより良い方法があるはずです。

私のRuby(およびプログラミング全般)の理解は基本的であり、Rubyで何ができるのか、何ができないのかはよくわかりません。そのため、どの関数が役立つかについてのヒントやヒントをいただければ幸いです。

4

1 に答える 1

0

一致するものが見つかったら、配列/ dbから連続してポップしてみませんか?そのレコードは後で照合するために存在しないため、重複がないことが保証されます。いいえ?このスニペットを検討してください。

db=%q(It is hot today), %q(It is going to rain), %q(Where are you, sonny?), %q(sentence contains is and are)
keyw=%w(is am are)
de=[]
keyw.each do |word|
    for index in 0...db.length  
        if db[index].include?(word)    
            puts "Matched #{word} with #{db[index]}"      
            de<<index
        end  
    end  
    until de.empty?
        db.delete_at(de.pop)
    end
end 

dbはデータベースの例であり、keywにはキーワードが含まれています。

対応する出力:

Matched is with It is hot today
Matched is with It is going to rain
Matched is with sentence contains is and are
Matched are with Where are you, sonny?

重複はありません。:)

于 2012-05-06T05:42:02.933 に答える