每日一题——LeetCode1160.拼写单词

方法一 个人方法:
先统计chars里每个字符出现的次数,再对words里每个字符串统计每个字符出现的字符,当:
1、字符串里出现chars里没有的字符
2、字符串里某个字符出现的次数大于该字符在chars里出现的次数
以上两种情况则不符合题意,其他的则为满足的单词,统计他们的长度并累加
var arr=[],arr2=[],flag=true,res=0for(const char of chars){if(arr[char]>0){arr[char]++}else{arr[char]=1}}for(const word of words){for(const char of word){if(arr[char]===undefined){flag=falsebreak}if(arr2[char]>0){arr2[char]++if(arr2[char]>arr[char]){flag=falsebreak}}else{arr2[char]=1}}if(flag){res+=word.length}flag=truearr2=[]}return res
};
统计chars里字符的出现次数也可以用map():
var countCharacters = function(words, chars) {var arr=[],flag=true,res=0var map = new Map()for(const char of chars){map.has(char)? map.set(char,map.get(char)+1):map.set(char,1)}for(const word of words){for(const char of word){if(!map.has(char)){flag=falsebreak}if(arr[char]>0){arr[char]++if(arr[char]>map.get(char)){flag=falsebreak}}else{arr[char]=1}}if(flag){res+=word.length}flag=truearr=[]}return res
};
消耗时间和内存情况:

方法二
1、word要求由chars拼写且字符不能重复使用,那么word.length<=chars.length
2、chars不能被修改,但是可以创建chars的副本,可以修改副本来达到比较,匹配一个字符就在副本里删除一个字符,保证字符只能使用一次
var countCharacters = function (words, chars) {return words.filter( word => word.length <= chars.length).filter(word => {let c = charsfor (let i = 0; i < word.length; i++) {let w_s = word[i]let c_i = c.indexOf(w_s)if (c_i === -1) {return false} else {c = c.replace(w_s, '')continue}}return true}).join('').length
};
消耗时间和内存情况:

相关文章:
每日一题——LeetCode1160.拼写单词
方法一 个人方法: 先统计chars里每个字符出现的次数,再对words里每个字符串统计每个字符出现的字符,当: 1、字符串里出现chars里没有的字符 2、字符串里某个字符出现的次数大于该字符在chars里出现的次数 以上两种情况则不符合…...
物联网协议Coap之Core和NetWork简介
目录 前言 一、Coap的Core包 1、Coap对象 2、Message对象 3、Request对象 4、Response对象 二、Coap的NetWork调试 1、UDP运行模式 2、Network消息接收 3、Sender线程发送数据 三、总结 前言 在之前的博文中,对Californium中Coap的实现进行了简要的介绍&a…...
Java SE入门及基础(10)
switch选择结构 1. 概念 switch 表示开关的意思,为了帮助理解,下面以线路为例,进行解释说明 上图中表示一条带有多个开关的线路,当开关打开时,该开关所控制的灯即被点亮。 2. 语法规则 switch ( 表达式 ){ //…...
Docker五部曲之二:Docker引擎
文章目录 前言Docker引擎镜像管理容器管理容器运行前台运行和后台运行容器识别重启策略清除 容器日志 数据管理卷挂载创建和管理卷启动带有卷的容器通过Docker Compose使用卷使用只读卷备份、恢复和迁移卷 绑定挂载用绑定挂载启动一个容器Docker Compose使用绑定挂载使用只读绑…...
简单说一下原型与原型链
文章目录 原型原型链 原型 简单来说原型就像是对象的 “爸爸”,每个对象都有一个原型。当你创建一个对象时,这个对象就会有一个内部链接,指向它的原型。你可以把原型想象成对象的一种模板,对象可以从中继承属性和方法。 举个例子…...
11Spring IoC注解式开发(上)(元注解/声明Bean的注解/注解的使用/负责实例化Bean的注解)
注解的存在主要是为了简化XML的配置。Spring6倡导全注解开发。 注解开发的优点:提高开发效率 注解开发的缺点:在一定程度上违背了OCP原则,使用注解的开发的前提是需求比较固定,变动较小。 1 注解的注解称为元注解 自定义一个注解: package com.sunspl…...
k8s 部署Jenkins项目
1、基于helm 部署jenkins 要求:当前集群配置了storageClass,并已指定默认的storageClass,一般情况下,创建的storageClass即为默认类 指定默认storageClass的方式 # 如果是新创建默认类: apiVersion: storage.k8s.io/v1…...
#每日一题#力扣#2085.统计出现过一次的公共字符串
给你两个字符串数组 words1 和 words2 ,请你返回在两个字符串数组中 都恰好出现一次 的字符串的数目。 示例 1: 输入:words1 [“leetcode”,“is”,“amazing”,“as”,“is”], words2 [“amazing”,“leetcode”,“is”] 输出:…...
Python系列(1):简洁优雅,功能强大的编程语言
Python:简洁优雅,功能强大的编程语言 一、Python的特点二、Python的应用领域 在当今的编程世界中,Python已经成为了一种无处不在的语言。它不仅简单易学,而且功能强大,支持多种编程范式,包括面向对象编程、…...
HarmonyOS应用开发学习笔记 arkTS自定义弹窗(CustomDialog)简单使用 arkTS弹出框回调、监听
HarmonyOS应用开发学习笔记 arkTS自定义弹窗(CustomDialog)简单使用 1、CustomDialog装饰器用于装饰自定义弹框 1、定义弹出框 CustomDialog CustomDialog export struct CustomDialogExample {controller: CustomDialogControllerbuild() {Column() {…...
RabbitMQ(六)消息的持久化
目录 一、简介1.1 定义1.2 消息丢失的场景 二、交换机的持久化方式一:直接 new方式二:channel.exchangeDeclare()方式三:ExchangeBuilder【推荐】 三、队列的持久化方式一:直接 new方式二:channel.queueDeclare()方式三…...
mybatisplus配置
一、新建项目:com.saas.plusdemo 二、配置pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:sch…...
node-sass@4.7.2 postinstall: `node scripts/build.js`
Can‘t find Python executable “D:\Python36\python.EXE“, you can set the PYTHON env variable.-CSDN博客 gyp ERR! build error gyp ERR! stack Error: C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe failed with exit code: 1 gyp ERR! stack at Chil…...
pyDAL一个python的ORM(9) pyDAL的嵌套查询
假设有以下两个表: db.define_table(person,Field(id, string), Field(‘name, string), Field(‘dept, string)) db.define_table(things,Field(id, string), Field(‘name, string), Field(‘owner, string)) 一、使用belongs进行嵌套查询 我们查询要求&#…...
融资项目——EasyExcel操作Excel文件
EasyExcel是Alibaba集团开源的EasyExcel技术,该技术是针对Apache POI技术的封装和优化,主要解决了POI技术的耗内存问题,并且提供了较好的API使用。不需要大量的代码就可以实现excel的操作功能。 1.EasyExcel的配置 首先引入依赖,…...
OAI openair3-NAS-UE-EMM代码解读(续)
文件路径openair3/NAS/UE/EMM/emm_main.c 714行之后 1.名称:emm_min_get_registered_plmn() 获取当前注册PLMN的标识; 输入:format:PLMN标识符的字符串表示的请求格式; 输出…...
SQL-条件查询与聚合函数的使用
🎉欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹 ✨博客主页:小小恶斯法克的博客 🎈该系列文章专栏:重拾MySQL 🍹文章作者技术和水平很有限,如果文中出现错误&am…...
Qt移植曲线显示
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、确定文件组成?1. 复制新文件2.新建ui窗口 二、实际操作2.1 新建Ui窗口,要添加带.h的否则跳转错误2.2添加文件到.h2.3 添加文件cpp 三…...
基于springboot生鲜交易系统源码和论文
首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包括软件架构模式、整体功能模块、数据库设计。本项…...
vue中鼠标拖动触发滚动条的移动
前言 在做后端管理系统中,像弹窗或大的表单时,经常会有滚动条的出现,但有些时候如流程、图片等操作时,仅仅使用鼠标拖动滚动条操作不太方便,如果使用鼠标拖拽图片或容器来触发滚动条的移动就比较方便了 功能设计 如…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
