這題要將英文轉換成摩斯密碼,並計算出重複字串的數量,我用 Linq 輕鬆解決。
public class Solution {
public int UniqueMorseRepresentations(string[] words) {
string[] morseCode = new string[] {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
List<char> listAToZ = Enumerable.Range('a', 26)
.Select(x => (char)x)
.ToList();
var morseCodeAns = words.Select(x =>
{
var temp = x.Select(y => morseCode[listAToZ.IndexOf(y)]);
return string.Join(string.Empty, temp);
});
return morseCodeAns.Distinct().Count();
}
}