• 締切済み

重複しない最初の文字を取り出す

学校の課題で 「標準入力された文字列の中で、重複していない最初の文字を表示せよ」 というプログラムが出題されました。 例えば、 pen pan eagle と入力した場合、penは前に文字列がないので重複がない、panはpが重複するがaは重複しない、eagleはeもaも重複するがgは重複しなので、 p a g と表示するようなプログラムです。 どういう感じで書けばよいでしょうか? 言語は何でもよいといわれたのですが、私が何とかなりそうなJavaかPerlだとありがたいです。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

じゃ Perl で. use v5.12; my %app; while ($line = <>) { chomp $line; if (defined (my $ch = ((grep { ! $app{$_} } split //, $line), undef)[0])) { say $ch; ++$app{$ch}; } }

関連するQ&A

  • 同列にある重複文字列のチェック方法

    Googleスプレッドシート上で同列にある文字列の重複をチェックする方法として、隣のセル(B列)に「=COUNTIF(A$2:A$999;A4)>1」と書く方法を使っています。この方法を使うとA列に重複した文字列を入力すると、重複した文字列横のB列にTRUEと表示されます。 しかしこのやり方だとA列に文字列を入力後、B列もエクセルで言うオートフィルみたいなことをしなければならず面倒なので、スクリプトで重複チェックできないものかと考えています。 ですがJavaScriptは初心者なので書き方が分からず苦戦中です。どなたか、手がかりとなるスクリプトやヒントをご教示いただけませんでしょうか。

  • 重複する文字をのぞいて抽出したい

    こんにちは 以下のようにA文字列に重複する文字が入っている場合に 別の列に重複した文字は除いて抽出する方法があれば教えて下さい。 お願いします。 A列  B列 あ   あ  い   い  う   う  う   え  い   お  え い お

  • 文字入力すると重複

    文字入力すると、重複表示されます。 例えばローマ字入力で「A」をタイプすると「あa」と表示されます。 これはIE(バージョン6.0)上のみで、ワードなどでは普通に入力できます。 WIN XP IE6.0 IMEスタンダード2002 Ver8.1 ほかに何か必要な情報があったら教えて下さい。 よろしくお願いいたします。

  • 【Excel】 重複内容をチェックしたい。

    こんにちは A列に値を入れますが、A列に同一の値が入力された場合 そのセル(重複しているお互いの)文字を赤で表示することは 可能でしょうか。 条件付き書式で出来ますか? Excel2003です。 よろしくお願いいたします。

  • Excel 列に入力のある文字列を重複なく取り出す

    Excel2003を使用しています。 下記のようなデータがあったとして、 A列に入っている文字列を右のように重複なく抜き出す 方法はありますでしょうか。 そして、それを1つのセルにまとめることはできますでしょうか? 1つのセルにまとめたものは別シートに表示したいです。 できるだけ簡単な方法がよいです。 A列   欲しいデータ   表示したい形式 A-1    A-1 A-2    A-2 A-3 →  A-3     → A-1,A-2,A-3   A-1 A-2 セルを1つにまとめる方法はいくつかわかるのですが、 列から入力のあるものを取り出す方法がわかりません。 同じような質問を探していたのですが、 見つけきれなかったので、お分かりの方がいらっしゃい ましたら、お教え下さい。 明日までの期限なのですが、どうしてもうまくできずに 困っております。よろしくお願い致します。

  • 文字列を大文字にするプログラムがわかりません。

    小文字を大文字に、大文字はそのまま、それ以外は表示しないプログラムなんですが、 「それ以外を表示しない」というところが書けません。 #include <stdio.h> int main(void) { char x; char *p; puts("文字列を入力"); scanf("%s", &n); for(p = &n; *p != '\0'; p++){ if(*p >= 'a' && *p <= 'z'){ *p = *p - 'a' + 'A'; } } printf("%s\n", &n); return 0; } これではもちろん数字などはそのまま表示されてしまいます。 しかも、4文字までは普通に大文字で表示されるんですが 6文字だとcoredumpedしてしまいます。 すいませんが、ソース書いて教えていただけると嬉しいです。

  • 3ヶの条件で重複を表示

    いつもお世話になります。 WINDOWS XP EXCELL 2003です。 部屋の管理ですが入力ミスを防ぎたく重複を表示して喚起したいです。 3ヶの条件とは C列 E列 F列 の値が一致 重複表示です。 添付図を参考に例えば 4の行と5の行が重複しています。 これをG列のように「●」表示できればと。 G2にどのような数式を入れればいいかご指導いただけませんか。 よろしく御願いします。

  • 重複している文字列をカウントと削除

    こんにちは。 自分専用の英単語集をNeoOffice calc(Mac OS X向けのOpenOffice.org,MSOfficeのエクセルに相当)を利用して作っています。 現在は下記のように、C列に500個ほど単語を入力した状態です。 図1   A  B   C    D    E  1 頻度 品詞 単語 不規則変化 意味  2        A  3        G  4        L  5        F   6        A  7        G  8        A  9        A  10        Q この上記のC列の各単語の重複個数を、下記の図2のようにA列に表示し、重複している単語を1個だけ残して削除したいのです。当然ながら、品詞、不規則変化、意味は手入力でがんばります。 図2   A    B   C    D    E 1 頻度  品詞  単語 不規則変化 意味 2  4  動詞   A    M   Aする 3  2  名詞   G         g 4  1  前置詞  F    W    f 5  1  名詞   L         l 6  1  動詞   Q    J   Qする 1行をオートフィルタでいじってみたいしましたが、私にはできませんでした。 関数のヘルプを参照したり、図書館でエクセルの教本を調べてみても、文字列だと・・・やはり私にはできませんでした。 どうかお力添えをお願い致します。

  • エクセル 重複調べる

    エクセルの重複を調べる方法について何ですが、 a1,b1,c1に文字列が入っているのですが、 a1~c1の中に重複しているものが一つあったら(a1とc1が同じ、もしくはa1とb1が同じ、b1とc1が同じ)d1に1と表示して、重複無しだったら0と表示する関数はありますか?

  • IF文の重複の表示

    A列には数字が入力されています。重複している場合は =IF(COUNTIF(A:A,A2)>1,"重複","") となるようにしました。ここまではわかったのですが A列に数字以外で”なし”と表示する場合があり、 上記プラスアルファ、A列になしがあって重複している場合は 重複と表示したくないのですが、関数で作成できるものなのか できるとしたらどのようにすればよいのか教えてください。 宜しくお願いいたします。

専門家に質問してみよう