804. 唯一摩尔斯密码词 python

# -*- coding: utf-8 -*-


class Solution:
    """
    @param words: the given list of words
    @return: the number of different transformations among all words we have
    """

    def uniqueMorseRepresentations(self, words):
        # Write your code here
        reduce = [
            ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..",
            ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.",
            "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."
        ]
        generate_set = set()
        for index, string_ in enumerate(words):
            temp_arr = ''
            for j, char_ in enumerate(string_):
                z = ord(char_) - 97  # 所在编码序列位置
                temp_arr += reduce[z]
            generate_set.update([temp_arr])  # 使用集合会自动去重
        len_ = len(generate_set)
        print(len_)
        return len_

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
摩尔电码(Morse Code)是一种早期的通信方式,通过长短音符组合来代表字母、数字和标点符号。在Python中实现一个摩尔电码转换器,你可以创建两个函数:一个用于将文本转换为摩尔电码,另一个用于将摩尔电码转换回文本。这里是一个简单的示例: 1. **编码函数**: 它会接受一个字符串参数,查找每个字符对应的摩尔电码,并连接起来形成最终的摩尔电码字符串。 ```python def encode_morse(text): morse_code_dict = { 'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.', 'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..', 'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.', 'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-', 'Y': '-.--', 'Z': '--..', '0': '-----', '1': '.----', '2': '..---', '3': '...--', '4': '....-', '5': '.....', '6': '-....', '7': '--...', '8': '---..', '9': '----.' } return ' '.join([morse_code_dict[ch] for ch in text.upper()]) ``` 2. **解码函数**: 它会接受一个摩尔电码字符串,将其分割成单独的字符,然后找到每个字符对应的字母并组合起来。 ```python def decode_morse(morse_code): morse_code_dict = {value: key for key, value in morse_code_dict.items()} decoded_text = '' words = morse_code.split(' ') for word in words: decoded_text += morse_code_dict[word] if word in morse_code_dict else ' ' return decoded_text ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值