leetcode-2085.统计出现过一次的公共字符串

2024-01-12 21:04

本文主要是介绍leetcode-2085.统计出现过一次的公共字符串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目链接:2085. 统计出现过一次的公共字符串 - 力扣(LeetCode)

解题思路:

1、暴力破解

首先想到的是暴力破解,用两个循环遍历列表,然后将单词出现的情况都记录在一个字典里面。最后遍历字典找到满足条件的值。

class Solution:def countWords(self, words1: List[str], words2: List[str]) -> int:map1 = {}for wd in words1:if wd in map1:map1[wd] += 1else:map1[wd] = 1map2 = {}for wd in words2:if wd in map2:map2[wd] += 1else:map2[wd] = 1# print(map1,map2)count = 0for key, value in map1.items():if key in map2 and map1[key] == 1 and map2[key] == 1:count += 1return count

2、哈希

  • counter()模块
    • 主要功能是支持方便、快速的计数,将元素统计,然后计数并且返回一个字典,键为元素,值为元素个数。结果的次数是从高到低的
      from collections import Counterlist1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]
      dic = Counter(list1)
      print(dic)
      #结果:次数是从高到低的
      #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})print(dict(dic))
      #结果:按字母顺序排序的
      #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}print(dic.items()) #dic.items()获取字典的key和value
      #结果:按字母顺序排序的
      #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])print(dic.keys())
      #结果:
      #dict_keys(['a', 'b', 'c', 'f', 'g'])print(dic.values())
      #结果:
      #dict_values([3, 1, 2, 2, 3])print(sorted(dic.items(), key=lambda s: (-s[1])))
      #结果:按统计次数降序排序
      #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]for i, v in dic.items():if v == 1:print(i)
      #结果:
      #b
      

      解题代码

      class Solution:def countWords(self, words1: List[str], words2: List[str]) -> int:cnt1 = Counter(words1)cnt2 = Counter(words2)return sum(v == 1 and cnt2[w] == 1 for w,v in cnt1.items())
      

这篇关于leetcode-2085.统计出现过一次的公共字符串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/599153

相关文章

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python 常用数据类型详解之字符串、列表、字典操作方法

《Python常用数据类型详解之字符串、列表、字典操作方法》在Python中,字符串、列表和字典是最常用的数据类型,它们在数据处理、程序设计和算法实现中扮演着重要角色,接下来通过本文给大家介绍这三种... 目录一、字符串(String)(一)创建字符串(二)字符串操作1. 字符串连接2. 字符串重复3. 字

nodejs打包作为公共包使用的完整流程

《nodejs打包作为公共包使用的完整流程》在Node.js项目中,打包和部署是发布应用的关键步骤,:本文主要介绍nodejs打包作为公共包使用的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言一、前置准备二、创建与编码三、一键构建四、本地“白嫖”测试(可选)五、发布公共包六、常见踩坑提醒

Java 字符串操作之contains 和 substring 方法最佳实践与常见问题

《Java字符串操作之contains和substring方法最佳实践与常见问题》本文给大家详细介绍Java字符串操作之contains和substring方法最佳实践与常见问题,本文结合实例... 目录一、contains 方法详解1. 方法定义与语法2. 底层实现原理3. 使用示例4. 注意事项二、su

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

IDEA与MyEclipse代码量统计方式

《IDEA与MyEclipse代码量统计方式》文章介绍在项目中不安装第三方工具统计代码行数的方法,分别说明MyEclipse通过正则搜索(排除空行和注释)及IDEA使用Statistic插件或调整搜索... 目录项目场景MyEclipse代码量统计IDEA代码量统计总结项目场景在项目中,有时候我们需要统计

Python 字符串裁切与提取全面且实用的解决方案

《Python字符串裁切与提取全面且实用的解决方案》本文梳理了Python字符串处理方法,涵盖基础切片、split/partition分割、正则匹配及结构化数据解析(如BeautifulSoup、j... 目录python 字符串裁切与提取的完整指南 基础切片方法1. 使用切片操作符[start:end]2

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎