你有乙個單詞列表words
和乙個模式pattern
,你想知道words
中的哪些單詞與模式匹配。
如果存在字母的排列p
,使得將模式中的每個字母x
替換為p(x)
之後,我們就得到了所需的單詞,那麼單詞與模式是匹配的。
(回想一下,字母的排列是從字母到字母的雙射:每個字母對映到另乙個字母,沒有兩個字母對映到同乙個字母。)
返回words
中與給定模式匹配的單詞列表。
你可以按任何順序返回答案。
示例:
輸入:words = ["abc","deq","mee","aqq","dkd","ccc"], pattern = "abb"輸出:["mee","aqq"]解釋:"mee" 與模式匹配,因為存在排列 。"ccc" 與模式不匹配,因為 不是排列。
因為 a 和 b 對映到同乙個字母。
本題根據題目中的提示即可:每個字母對映到另乙個字母,沒有兩個字母對映到同乙個字母。
利用map構造對映。
**如下:
class solution
else if (comp.containsvalue(b)) break;//兩個字母對映到了同乙個字母
else comp.put(a,b);
}if (j==pattern.length()) ans.add(words[i]);
}return ans;
}}
競賽題筆記(1)
題目 整體思路 只有當甲乙同時到達目的地時才是使用時間最短的方法,因此先求出二者到達目的地所需要的時間的表示式,以時間近似相等為判定條件 通過調整甲在中途下車的地點 使用二分法 而得出答案 二分法 include include int main double s,s1,s2,v1,v2,t1,t2...
一道C 競賽題
題目的大致意思是 一些數字順時針排成乙個圈,最上面的是1,從1開始,隔乙個數,移除乙個數,順時針一直移下去,直到最後剩下兩個數,這兩個數就是幸運數字。例如1 2 3 4 5,開始如下圖 然後從1開始隔乙個去掉乙個數,如下圖 這個時候已經一輪了,但是剩餘數字還大於2,所以繼續去,這個時候4被去掉了,跳...
17藍橋杯競賽題「取數字」
求1個整數的第k位數字有很多種方法。以下的方法就是一種。public class main 取x的第k位數字 static int f int x,int k public static void main string args 對於題目中的測試資料,應該列印5。請仔細分析原始碼,並補充劃線部分所...