變位詞

變位詞

中等

簡介

在車庫拍賣上,你以便宜的價格找到一台漂亮的復古打字機!你興奮地衝回家,塞進一張紙,開始打起字來。不過,當你檢查印出來的東西時,興奮感就消退了:所有的字都亂七八糟!例如,它印出「stop」而不是「post」,印出「least」而不是「stale」。你小心翼翼地再試一次,但這次它印出的是「spot」和「slate」。經過一番實驗,你發現每個字母印出前都有隨機的延遲,把順序打亂了。現在你總算明白為什麼他們賣得這麼便宜了吧!

你意識到這個怪毛病讓你能產生重組字,也就是把另一個詞的字母重新排列後所形成的詞。對這個發現很滿意,你就花了接下來一整天的時間產生數百個重組字。

說明

給定一個目標字詞和一個或多個候選字詞,你的任務是找出與目標互為變位詞的候選字詞。

變位詞是重新排列字母後形成的新字詞:例如 "owns" 是 "snow" 的變位詞。 一個字詞_不是_自己的變位詞:例如 "stop" 不是 "stop" 的變位詞。

目標字詞和候選字詞由一個或多個 ASCII 英文字母(A-Z 和 a-z)組成。 小寫和大寫字母視為相同:例如 "PoTS" 是 "sTOp" 的變位詞,但 "StoP" 不是 "sTOp" 的變位詞。 你需要找出的字詞應該取自候選字詞,並使用相同的字母大小寫。

給定目標"stone"與候選字詞"stone"、"tones"、"banana"、"tons"、"notes"和"Seton",你需要找出的變位詞是"tones"、"notes"和"Seton"。

輸入/輸出格式

每一組單字都以一個以 null 結尾的字串表示,每個單字的結尾都有一個換行字元。

你必須依照候選單字中列出的順序回傳這些重組字。

舉例來說,"tones\nnotes\nSeton\n"

暫存器

暫存器 用途 型態 說明
$a0 輸入 位址 以 null 結尾的目標字串,不含換行
$a1 輸入 位址 以 null 結尾的候選字串,每個單字後面都有換行
$a2 輸入/輸出 位址 以 null 結尾的輸出字串,每個單字後面都有換行
$t0-9 暫時 任意 用於暫存
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
MIPS Assembly Exercism

準備好開始 變位詞 了嗎?

註冊 Exercism,透過 70 個練習 和真人引導來學習並精通 MIPS Assembly,全部免費。