0

次の名前をテキスト ファイルに保存しています。

|Rafal Dlugosz     |     Ryszard Wojtyna|
|Shuming Wang     |     Junzo Watada|
|Ryszard Wojtyna     |     Rafal Dlugosz|
|Qinghua Hu     |     Daren X. Yu|
|Seok-Beom Roh     |     Tae-Chon Ahn|
|Daren X. Yu    |     Qinghua Hu|

名前は|記号で区切ります。あるペアで一人称が二人称と等しい名前のペアのみを表示する必要があり、同じペアの場合、二人称は名と同じです。

例:

|Rafal Dlugosz     |     Ryszard Wojtyna|
|Ryszard Wojtyna     |     Rafal Dlugosz|
|Qinghua Hu     |     Daren X. Yu|
|Daren X. Yu    |     Qinghua Hu|

あらゆる種類の助けをいただければ幸いです。ありがとうございます。

4

1 に答える 1

0

私の提案は次のとおりです-各行の文字列を分割し、各ペアにペアの配列を作成します。最初の名前をペアの最初の位置に配置し、他の名前をペアの2番目の位置に配置します。この配列を並べ替えると、重複が隣り合わせになります。

また、初期配列の各ペアのインデックスの知識をどうにかして追加する必要があります。おそらく、独自の構造を使用するのが最良のオプションです。

class Entry implements Comparable {
  String first_name_lexicographically;
  String second_name_lexicographically;
  int initial_index;
  public Entry(String line, int index); // split the line and initilize the fields
}

次に、エントリの配列を作成してソートし、定義に従ってエントリを複製します。隣接します。

于 2013-06-07T08:46:36.783 に答える