Module: AP コンピュータ サイエンス セクション II 2014


Problem

1/3

AP コンピューター サイエンス A 2014 自由回答質問 - scrambleWord

Problem

1. この質問には、大文字で構成される文字列についての推論が含まれます。同じクラスに表示される 2 つの関連するメソッドを実装します (表示されていません)。最初のメソッドは単一の文字列パラメータを取り、その文字列のスクランブル バージョンを返します。 2 番目の方法は、文字列のリストを取得し、リスト内の各エントリをスクランブルしてリストを変更します。スクランブルできないエントリはリストから削除されます。 
a) メソッド scrambleWord を作成します。このメソッドは、指定された単語を受け取り、次の規則に従ってその単語をスクランブルしたバージョンを含む文字列を返します。
  • スクランブル プロセスは単語の最初の文字から始まり、左から右へと続きます。
  • 2 つの連続した文字が「A」で構成されている場合その後に「A」以外の文字が続く場合、結果の文字列で 2 つの文字が入れ替わります。
  • 隣接する 2 つの位置の文字が交換されると、それらの 2 つの位置のいずれも将来の交換に関与することはできません。
次の表に、単語とそのスクランブル バージョンの例をいくつか示します。 <本体>
下記の scrambleWord メソッドを完成させてください。

 /** 指定された単語をスクランブルします。
 * @param word スクランブルする単語
 * @スクランブルされた単語を返す (おそらく単語と等しい)
 * 前提条件: 単語が空の文字列であるか、大文字のみを含んでいる
 * 事後条件: 返された文字列は次のように単語から作成されました:
 * - 単語は、最初の文字から始まり、左から右へとスクランブルされています
 * - "A" で構成される 2 つの連続した文字「A」以外の文字が続きます。入れ替わった
 * - 文字が最大 1 回交換されました
 */
 public static String scrambleWord(String単語)


b) メソッド scrambleOrRemove を記述します。このメソッドは、パラメーター wordList 内の各単語をスクランブルされたバージョンに置き換え、スクランブル後に変更されていない単語をすべて削除します。 wordList 内のエントリの相対的な順序は、scrambleOrRemove を呼び出す前と同じままです。
次の例は、scrambleOrRemove を呼び出した結果、wordList の内容がどのように変更されるかを示しています。
scrambleOrRemove の呼び出し前:

単語リスト 
言葉 scrambleWord(word) によって返される結果
「タン」 「TNA」
「アブラカダブラ」 「バーカバラ」
「WHOA」 「WHOA」
「ツチブタ」 「ARADVRAK」
「卵」 「卵」
「あ」 「あ」
「」 「」
<本体>
scrambleOrRemove の呼び出し後:
単語リスト
0 1 2 3 4
「TAN」 「アブラカダブラ」 「WHOA」 "APPLE" 「卵」
<本体>
0 1 2
「TAN」 "バーカバラ" "PAPLE"
Write the program below


                                
public static String scrambleWord(String word)
    {              
}
public static void scrambleOrRemove(List<String> wordList)
{              
}              


                                

     

Program check result

To check the solution of the problem, you need to register or log in!