当前位置: 首页 > news >正文

leetcode位运算(1684. 统计一致字符串的数目)

前言

经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。后续开始专项练习。

描述

给你一个由不同字符组成的字符串 allowed 和一个字符串数组 words 。如果一个字符串的每一个字符都在 allowed 中,就称这个字符串是 一致字符串 

请你返回 words 数组中 一致字符串 的数目。

示例 1:

输入:allowed = "ab", words = ["ad","bd","aaab","baa","badab"]
输出:2
解释:字符串 "aaab" 和 "baa" 都是一致字符串,因为它们只包含字符 'a' 和 'b' 。

示例 2:

输入:allowed = "abc", words = ["a","b","c","ab","ac","bc","abc"]
输出:7
解释:所有字符串都是一致的。

示例 3:

输入:allowed = "cad", words = ["cc","acd","b","ba","bac","bad","ac","d"]
输出:4
解释:字符串 "cc","acd","ac" 和 "d" 是一致字符串。

提示:

  • 1 <= words.length <= 104
  • 1 <= allowed.length <= 26
  • 1 <= words[i].length <= 10
  • allowed 中的字符 互不相同 。
  • words[i] 和 allowed 只包含小写英文字母。

实现原理与步骤

1.本题重点掌握相应字符bit位的编码规则

2.bitArray和tempBitArray或之后还等于bitArray,说明bitArray包含tempBitArray

代码实现

class Solution {public int countConsistentStrings(String allowed, String[] words) {int res=0;int bitArray=0;for(Character c:allowed.toCharArray()){//按字符的编码进行bit位设置bitArray|=1<<(c-'a');}for(String word:words){int tempBitArray=0;for(Character c:word.toCharArray()){//按字符的编码进行bit位设置tempBitArray|=1<<(c-'a');}//如果bitArray或tempBitArray后还是bitArray,则bitArray包含tempBItArrayif((bitArray|tempBitArray)==bitArray){res+=1;}}return res;}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Google Chrome 浏览器在链接上点右键的快捷键
  • “微软蓝屏”事件暴露了网络安全哪些问题?
  • Photoshop(PS) 抠图简单教程
  • 17_高级进程间通信 UNIX域套接字1
  • 软件测试10 渗透性测试及验收测试
  • 项目中加班的意义
  • 80. 删除有序数组中的重复项 II【 力扣(LeetCode) 】
  • primeflex教学笔记20240720, FastAPI+Vue3+PrimeVue前后端分离开发
  • 第三届智能机械与人机交互技术学术会议(IHCIT 2024)
  • html+css+js前端作业 王者荣耀官网5个页面带js
  • Web前端Promise
  • 【JavaScript】点击穿透
  • 爬虫学习4:爬取王者荣耀技能信息
  • 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(二)——带着问题的学习;一刷感受;环境搭建
  • 前端切片下载
  • 【前端学习】-粗谈选择器
  • 2017-08-04 前端日报
  • C++入门教程(10):for 语句
  • Laravel核心解读--Facades
  • Theano - 导数
  • 构造函数(constructor)与原型链(prototype)关系
  • 每天10道Java面试题,跟我走,offer有!
  • 驱动程序原理
  •  一套莫尔斯电报听写、翻译系统
  • 用element的upload组件实现多图片上传和压缩
  • Spring第一个helloWorld
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​Redis 实现计数器和限速器的
  • ​补​充​经​纬​恒​润​一​面​
  • ​一些不规范的GTID使用场景
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • (12)Hive调优——count distinct去重优化
  • (javaweb)Http协议
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (九十四)函数和二维数组
  • (三)Honghu Cloud云架构一定时调度平台
  • (十五)使用Nexus创建Maven私服
  • (微服务实战)预付卡平台支付交易系统卡充值业务流程设计
  • (转)重识new
  • (转载)虚函数剖析
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .gitignore文件---让git自动忽略指定文件
  • .htaccess 强制https 单独排除某个目录
  • .htaccess配置常用技巧
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?
  • .NET C# 使用 iText 生成PDF
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Core中的去虚
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数