Python描述 LeetCode 6094. 公司命名

Posted 亓官劼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python描述 LeetCode 6094. 公司命名相关的知识,希望对你有一定的参考价值。

Python描述 LeetCode 6094. 公司命名

  大家好,我是亓官劼(qí guān jié ),在【亓官劼】公众号、CSDN、GitHub、B站等平台分享一些技术博文,主要包括前端开发、python后端开发、小程序开发、数据结构与算法、docker、Linux常用运维、NLP等相关技术博文,时光荏苒,未来可期,加油~

  如果喜欢博主的文章可以关注博主的个人公众号【亓官劼】(qí guān jié),里面的文章更全更新更快。如果有需要找博主的话可以在公众号后台留言,我会尽快回复消息.


本文原创为【亓官劼】(qí guān jié ),请大家支持原创,部分平台一直在恶意盗取博主的文章!!! 全部文章请关注微信公众号【亓官劼】。

题目

给你一个字符串数组 ideas 表示在公司命名过程中使用的名字列表。公司命名流程如下:

  1. ideas 中选择 2 个 不同 名字,称为 ideaAideaB
  2. 交换 ideaAideaB 的首字母。
  3. 如果得到的两个新名字 不在 ideas 中,那么 ideaA ideaB串联 ideaAideaB ,中间用一个空格分隔)是一个有效的公司名字。
  4. 否则,不是一个有效的名字。

返回 不同 且有效的公司名字的数目。

示例 1:

输入:ideas = ["coffee","donuts","time","toffee"]
输出:6
解释:下面列出一些有效的选择方案:
- ("coffee", "donuts"):对应的公司名字是 "doffee conuts" 。
- ("donuts", "coffee"):对应的公司名字是 "conuts doffee" 。
- ("donuts", "time"):对应的公司名字是 "tonuts dime" 。
- ("donuts", "toffee"):对应的公司名字是 "tonuts doffee" 。
- ("time", "donuts"):对应的公司名字是 "dime tonuts" 。
- ("toffee", "donuts"):对应的公司名字是 "doffee tonuts" 。
因此,总共有 6 个不同的公司名字。

下面列出一些无效的选择方案:
- ("coffee", "time"):在原数组中存在交换后形成的名字 "toffee" 。
- ("time", "toffee"):在原数组中存在交换后形成的两个名字。
- ("coffee", "toffee"):在原数组中存在交换后形成的两个名字。

示例 2:

输入:ideas = ["lack","back"]
输出:0
解释:不存在有效的选择方案。因此,返回 0 。

提示:

  • 2 <= ideas.length <= 5 * 104
  • 1 <= ideas[i].length <= 10
  • ideas[i] 由小写英文字母组成
  • ideas 中的所有字符串 互不相同

Python描述

class Solution:
    def distinctNames(self, ideas: List[str]) -> int: 
        # f[x][y]记录可以将首字母从x换到y且不在ideas中的数量
        f = [[0 for _ in range(26) ] for __ in range(26)]
        hd = 
        for item in ideas:
            hd[item] = 1
        
        
        for item in ideas:
            x = ord(item[0]) - ord('a')
            for y in range(26):
                ns = chr(y+ord('a')) + item[1:]
                if hd.get(ns,0) == 0:
                    f[x][y] += 1
        
        res = 0
        for item in ideas:
            y = ord(item[0]) - ord('a')
            # 加上可以换到y的数量
            for x in range(26):
                ns = chr(x+ord('a')) + item[1:]
                if hd.get(ns,0) == 0:
                    res += f[x][y]
        return res

以上是关于Python描述 LeetCode 6094. 公司命名的主要内容,如果未能解决你的问题,请参考以下文章

HDU6094 Rikka with K-Match

LOJ #6094. 「Codeforces Round #418」归乡迷途

python3 爬虫爬取深圳公租房轮候库(深圳房网)

python下载网-易-公-开-课的视频

使用Python统计深圳市公租房申请人省份年龄统计

C++&Python描述 LeetCode C++&Python描述 LeetCode 165. 比较版本号