申し訳ないですが、期限が明日までなのでできればプログラムを教えていただきたいです。
ある英単語を指定し、それを適当に並び替えたもので実際に辞書に載っているものを表示せよという問題なのですが、全くわかりません。
プログラムを実行した結果は以下のようになるみたいです。
指定した英単語: [h,o,r,s,e]
horse,hoers,shore
指定した英単語: [a,l,g,o,r,i,t,h,m]
algorithm,logarithm
また、辞書はwordlist.txtの中に入っていて、およそ10万語あります。
この問題は元々javascriptで答えなくてはならない問題なのですが、javascriptの質問掲示板らしきものが見当たらなかったので、c言語で作り、それをjavascriptに変換しようと思っています。
ここはc言語の質問掲示板なので無理かとは思いますが、できればjavascriptで教えていただけるとありがたいです。
ある指定した単語を並び替えて、その単語を表示するプログラム
Re: ある指定した単語を並び替えて、その単語を表示するプログラム
期限が明日ということは今日まで頑張ってきた分があると思うのでそれをベースにしましょう。
なので、いったんそれを書き込んでください。
C言語なんでも質問掲示板という名前ですがふわっとプログラミング関係なら何でもありな空気なので、大丈夫なはずですよ。
なので、いったんそれを書き込んでください。
C言語なんでも質問掲示板という名前ですがふわっとプログラミング関係なら何でもありな空気なので、大丈夫なはずですよ。
Re: ある指定した単語を並び替えて、その単語を表示するプログラム
wordlist.txtのフォーマットがわかりませんが、1行に1単語ずつ書かれており、余計な空白などはないと仮定してRubyで書いてみました。
テスト用wordlist.txt
入力例1
出力例1
入力例2
出力例2
dict = {}
File.open('wordlist.txt') do |f|
f.each_line do |line|
dict[line.chomp] = true
end
end
input = gets.chomp
ans = []
input.chars.permutation.map { |x| x.join '' }.each do |w|
ans.push w if dict.key? w
end
puts '指定した英単語: [' + input.chars.join(',') + ']'
puts ans.join ','
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: ある指定した単語を並び替えて、その単語を表示するプログラム
一口にjavascriptと言っても、普通のWebブラウザで実行する奴、SpiderMonkey、Rhino、Node.jsなど多くの種類があり、それによってファイルの読み込み方や英単語の指定の仕方も違うでしょう。Misa0531 さんが書きました:できればjavascriptで教えていただけるとありがたいです。
- 具体的にどの処理系を使うか
- wordlist.txtのフォーマット
- 英単語の指定の仕方(標準入力、関数の引数、HTMLのフォーム、など)
- 結果の出力の仕方(標準出力、関数の戻り値、divやtextareaなどのHTML要素、ダイアログ、Webブラウザのコンソール、など)
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: ある指定した単語を並び替えて、その単語を表示するプログラム
C++ で書いてみました。アルゴリズムを示すだけなので、出力形式は適当です。
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string chars;
while (cout << ">> ", cin >> chars) {
ifstream ifs("wordlist.txt");
if (!ifs) return 1;
size_t len = chars.size();
sort(chars.begin(), chars.end());
string word;
while (ifs >> word)
if (word.size() == len) {
string str = word;
sort(word.begin(), word.end());
if (word == chars) cout << str << endl;
}
}
}