首页 > 其他分享 >leedcode-单词规律

leedcode-单词规律

时间:2024-03-29 13:55:05浏览次数:12  
标签:字符 False 规律 leedcode 单词 mystr 字典 mydic

自己写的,好像有点复杂:

class Solution:
    def wordPattern(self, pattern: str, s: str) -> bool:
        # 将字符串 s 按空格切分成单词列表
        mystr = s.split()
        
        # 创建一个空字典,用于存储字符和其出现位置的映射
        mydic = dict()
        
        # 将单词列表转换为集合,以便检查单词是否唯一
        mystr_set = set(mystr)
        
        # 检查模式字符串和单词列表的长度是否相同,如果不同,则返回 False
        if len(mystr) != len(pattern):
            return False
        
        # 遍历模式字符串的每个字符
        for index, char in enumerate(pattern):
            # 如果当前字符不在字典中,将其添加到字典并将其位置作为值
            if char not in mydic:
                mydic.update({char: [index]})
            else:
                # 如果当前字符已经在字典中,将其位置添加到对应字符的值列表中
                mydic[char].append(index)
        
        # 检查字典中不同值的数量是否与单词集合的长度相同,如果不同,则返回 False
        if len(mydic) != len(mystr_set):
            return False
        
        # 检查每个字符在单词列表中的位置是否一致
        for k, value_list in mydic.items():
            for i in value_list:
                # 如果当前位置的单词与该字符的第一个位置的单词不同,则返回 False
                if mystr[i] == mystr[value_list[0]]:
                    continue
                else:
                    return False
        
        # 如果所有检查都通过,则返回 True
        return True

 

标签:字符,False,规律,leedcode,单词,mystr,字典,mydic
From: https://www.cnblogs.com/yyyjw/p/18103714

相关文章

  • 数据库表名和字段名,为什么忽略大小写?为什么采用下换线分割单词?
    数据库表名和字段名,为什么忽略大小写在数据库设计和使用中,表名和字段名的大小写敏感性是由数据库管理系统(DBMS)的配置和操作系统决定的。有些数据库系统默认是区分大小写的,而有些则不区分。在实际操作中,忽略大小写的原因主要有以下几点:兼容性和易用性:为了确保不同操作系......
  • 08天【代码随想录算法训练营34期】第四章 字符串part01(● 344.反转字符串 ● 541. 反
    **344.反转字符串**classSolution:defreverseString(self,s:List[str])->None:left=0right=len(s)-1whileleft<right:temp=s[left]s[left]=s[right]s[right]=temp......
  • JavaScript 基础、内置对象、BOM 和 DOM 常用英文单词总结
    一提到编程、软件、代码。对于英语不是很熟悉的同学望而却步。其实没有想像中的难么难,反复练习加上自己的思考、总结,会形成肌肉记忆。整理一下,初学者每天30遍。1、JavaScript基础语法break:中断循环或switch语句的执行。case:在switch语句中检查的值。catch:在try-c......
  • leedcode-第一个错误的版本
    自己写的二分法:classSolution:deffirstBadVersion(self,n:int)->int:#初始化左右指针进行二分查找left=1right=n#检查第一个版本是否是坏版本ifisBadVersion(1):return1#检查......
  • 【蓝桥杯省赛真题33】python单词排序 中小学青少年组蓝桥杯比赛 算法思维python编程省
     目录python单词排序一、题目要求1、编程实现2、输入输出二、算法分析三、程序编写四、程序说明五、运行结果六、考点分析七、 推荐资料1、蓝桥杯比赛2、考级资料3、其它资料python单词排序第十三届蓝桥杯青少年组python比赛省赛真题一、题目要求(注:input......
  • 3401:练69.1 单词的长度
    3401:练69.1单词的长度时间限制:1000ms内存限制:65536KB提交数:991通过数:613【题目描述】输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度。注意,如果有标点符号(如连字符,逗号,句号),标点符号算作与之相连的词的一部分。没有被......
  • leedcode-丢失的数字
    自己写的,调包排序:fromtypingimportListclassSolution:defmissingNumber(self,nums:List[int])->int:#将输入的列表排序nums_new=sorted(nums)#如果排序后的列表的第一个元素不是0,说明0缺失,直接返回0ifnums_n......
  • leedcode-丑数
    丑数就是只包含质因数2、3和5的正整数。换句话说丑数=2*……*2*3*……*3*5*……*5classSolution:defisUgly(self,n:int)->bool:#如果n小于等于0,则不是丑数,返回Falseifn<=0:returnFalse#如果n是......
  • Java语言程序设计实验题目:编写Java程序统计一篇英文文档中各单词出现的次数,并按单词出
    题目描述编写Java程序统计一篇英文文档中各单词出现的次数,并按单词出现的频率由高到低进行输出。例如:文档“HellowordHello”的统计结果为: Hello:2次 word:1次思路分析1.处理文档:先用nextLine()将文段输入,存储在字符串file,再调用split()方法将字符串分割成一个......
  • leedcode-二叉树的所有路径
    迭代法-深度优先搜索classSolution:defbinaryTreePaths(self,root:Optional[TreeNode])->List[str]:ifnotroot:return[]#如果根节点为空,直接返回空列表stack=[(root,str(root.val))]#初始化栈,栈中存储的是节点......