この課題に触発されて(タイトルに@cairdcoinheringaahingに感謝します!)、あなたの仕事は2つの印刷可能なASCII文字列を取得し、次のルールで要素ごとに乗算することです。
どのように機能しますか?
2つの文字列(たとえばsplit
とisbn
)が与えられた場合、最初に長い文字列を切り捨てて長さが等しくなるようにし、次にASCIIコードを決定します。
split -> spli -> [115, 112, 108, 105]
isbn -> isbn -> [105, 115, 98, 110]
次のステップでは、各コードを[0..94]
減算することにより、それらを範囲にマップし32
ます。
[115, 112, 108, 105] -> [83, 80, 76, 73]
[105, 115, 98, 110] -> [73, 83, 66, 78]
次に、要素ごとにモジュロを乗算します95
(印刷可能な範囲に留まるため)。
[83, 80, 76, 73] ⊗ [73, 83, 66, 78] -> [74, 85, 76, 89]
追加32
して範囲に戻ります[32..126]
:
[74, 85, 76, 89] -> [106, 117, 108, 121]
最後のステップは、それらをASCII文字にマップし直すことです。
[106, 117, 108, 121] -> "july"
ルール
- 説明した手順を2つの文字列に実装し、結果の文字列を出力または返すプログラム/関数を作成します
- 入力形式は柔軟です。2つの文字列、文字列のタプル、文字列のリストなどを使用できます。
- 入力は1つまたは2つの空の文字列で構成されます
- 入力は、印刷可能な範囲の文字になります(
[32..126]
) - 出力はコンソールに出力されるか、文字列を返します
- 出力には末尾の空白を含めることができます
テストケース
"isbn", "split" -> "july"
"", "" -> ""
"", "I don't matter" -> ""
" ", "Me neither :(" -> " "
"but I do!", "!!!!!!!!!" -> "but I do!"
'quotes', '""""""' -> 'ck_iKg'
"wood", "hungry" -> "yarn"
"tray", "gzip" -> "jazz"
"industry", "bond" -> "drop"
"public", "toll" -> "fall"
"roll", "dublin" -> "ball"
"GX!", "GX!" -> "!!!"
"4 lll 4", "4 lll 4" -> "4 lll 4"
"M>>M", "M>>M" -> ">MM>"
注:引用符は読みやすくするためのもので、6番目のテストケースではの'
代わりに使用しました"
。
abc, def -> [['a', 'b', 'c'], ['d', 'e', 'f']]