804. Unique Morse Code Words
题目链接
题目分析
这个题目要求算出把给定数组中的字符串转换成摩尔斯码后,有多少个不同的摩尔斯码。
思路
第一步需要把字符串转换成摩尔斯码。
$morse = [
".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--",
"-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."
];
$replaced = [];
foreach($words as $word){
$chars = str_split($word);
$string = '';
foreach($chars as $char){
$string .= $morse[ord($char)-ord('a')];
}
}
转换完成后存进数组内,再用array_unique函数排除。再count排除结果即可。
最终代码
<?php
class Solution {
function uniqueMorseRepresentations($words) {
$morse = [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."];
$replaced = [];
foreach($words as $word){
$chars = str_split($word);
$string = '';
foreach($chars as $char){
$string .= $morse[ord($char)-ord('a')];
}
$replaced[] = $string;
}
return count(array_unique($replaced));
}
}
若觉得本文章对你有用,欢迎用爱发电资助。
优化方案
- 直接存为数组的键则可以省去用array_unique去重的步骤。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。