0

私は学校でこの以下の問題を与えられました。私は自分の理解に従って解決しました。解決策は以下のとおりです。誰かが同じことに対するより良い解決策を提供するのを手伝ってくれませんか。

質問:

2 つの大文字と小文字を区別しない並べ替えリストのフィルター処理されたマージを作成するソフトウェア アプリケーションを作成します。最初の入力リストはソース リストとして指定され、もう一方はプレフィックス リストとして指定されます。アプリケーションは、次のアルゴリズムを使用して、ソース リストとプレフィックス リストからのアイテムを含むマージされたリストを生成します。

次のいずれかが true の場合にのみ、項目 X がマージされたリストに含まれます。

a) X はソース リストからのものであり、X の大文字と小文字を区別しない文字列プレフィックスであるプレフィックス リストに項目 Y があります。

b) X は Prefixes リストからのものであり、ソース リストに、X が大文字と小文字を区別しない文字列プレフィックスである項目がありません。

完成したマージされたリストは、元の 2 つのリストの項目と同じ並べ替え順序になっている必要があります。

私の解決策:

public ArrayList<String> merge(List<String> srcList, List<String> preList) {
        // If Prefixes list is empty then there cannot be a new merge list
        if (preList.isEmpty()) {
            return null;
        }
        int i = 0, j = 0;
        int sourcesListSize = srcList.size();
        int prefixesListSize = preList.size();
        ArrayList<String> mergeList = new ArrayList<String>();
        // Loop through Sources list until end of the list is reached
        //ASSUMPTION: Both SourceList and PrefixList are already sorted.
        while (i < sourcesListSize && j<prefixesListSize) {
            mergeList.add(preList.get(j).concat(srcList.get(i)));
            i++;
            j++;
        }
        // If Prefixes list still have items, then add it to mergeList
        while (j < prefixesListSize) {
            mergeList.add(preList.get(j));
            j++;
        }
        return mergeList;

    }

入力:

  • ソースリスト:{"pple","ow","enver",pic,"ull"}
  • PrefixList:{"a","c","d","e","f"}

MergeList={"apple",cow","denver","epic","full"}

私の理解は正しいですか?他に最善の解決策はありますか?

4

1 に答える 1

1

これは宿題なので、あまり教えないようにしますが、prefixの定義に従って、いくつかの例を次に示します。

「a」は「Apple」の接頭辞です

「牛」は「牛」の接頭辞です。

「g」は「Zoo」の接頭辞ではありません

「col」は「cool」の接頭辞ではありません

それに基づいて、MergeList は次のようになりますか? ヒント: 正しい MergeList には、SourceList と PrefixList の両方からの項目があります。あなたの解決策を投稿してください。私はそれを批評します。この部分がどのように機能するかを理解すると、ソリューションをコーディングする方法がよりよく理解できるようになります。

SourceList : {"Apple","Pepper","Denver", "Garage", "Zoo"}

PrefixList : {"a","d","pe","木琴","e"}

于 2012-04-19T05:15:51.897 に答える