“由各种字母组成的字符串S,另外一个字母数相对少一些的字符串T,设法最快的查出是否T中的字母均在S中?”

给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 2020年11月29日,力扣,简单,判断子序列 一、题目描述 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。 示例 1: s = "abc", t = "ahbgdc" 返回 阅读详情

问题:“由各种字母组成的字符串S,另外一个字母数相对少一些的字符串T,设法最快的查出是否T中的字母均在S中?”

思路:

判断集合A是否包含集合B,即判断其差(A-B)是否为空集。(A-B)不好算,可换为求(A -(A交B))。

考虑集合的表示方面,没要求顺序,即无序集。

仅考虑26个小写字母的情况,自然地想用位向量。用32位整数表示集合,第0位为1表示含'a',第1位为1表示含'b',……

#include <cassert>
#include <iostream>
using namespace std;

/*
  这个示意性的程序仅考虑了26个小写字母。
  若字符集更大可换用数组作为字符串的“签名”,对UNICODE,0x10FFFF个字符用int[]不过4M内存,也可继续按位存储省点内存。
*/
int str_sig(char const *ps)
{
  assert(ps);
  assert(isalpha(*ps));

  int sig = 0;
  while(*ps){
    sig |= (1 << (*ps - 'a'));
    ++ps;
  }

  return sig;
}

bool contains_charset(char const *psa, char const *psb)
{
  int sig_a = str_sig(psa);
  int sig_b = str_sig(psb);
  return ((sig_a & sig_b) ^ sig_b) == 0;
}

void test(char const *psa, char const *psb)
{
  cout << "\"" << psa << "\" " << (contains_charset(psa, psb) ? "" : "not ") << " contains \"" << psb << "\"\n";
}

int main()
{
  assert(str_sig("") == 0);
  assert(str_sig("a") == (1 <<  0));
  assert(str_sig("z") == (1 << 25));
  assert(str_sig("abcdefghijklmnopqrstuvwxyz") == ((1 << 26) - 1));
  test("", "");
  test("a", "a");
  test("a", "b");
  test("ab", "b");
  test("bc", "b");
  test("abc", "b");
  test("abcdefghijklmnopqrstuvwxyz", "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
  return 0;
}


 

百度笔试—字符覆盖 【 题目描述】小度有一个小写字母组成的字符串 s.字符串 s 已经被写在墙上了. 小度还有很多卡片,每个卡片上有一个小写字母,组成一个字符串 t。小度可以选择字符串 t 中 3 、字符覆盖 【 题目描述】小度有一个小写字母组成的字符串 s.字符串 s 已经被写在墙上了. 小度还有很多卡片,每个卡片上有一个小写字母,组成一个字符串 t。小度可以选择字符串 t 中任意一个字 符,然后覆盖在字符串 s 的一个字符之上。小度想知道在选取一些卡片覆盖 s 的一些字符之后,可以得到的 字典序最大的字符串是什么。 输入描述: : 输入包括两行,第一行一个字符串 s,字符... 阅读详情

相关推荐

Java 给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。

给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。 该题目来自力扣题库 示例 示例 1: 输入:“ab-cd” 输出:“dc-ba” 示例 2: 输入:“a-bC-dEf-ghIj” 输出:“j-Ih-gfE-dCba” 示例 3: 输入:“Test1ng-Leet=code-Q!” 输出:“Qedo1ct-eeLg=ntse-T!” 思路 ...

qq_45619426的博客 1571

力扣小白刷题之763题划分字母区间

题目描述 字符串 S 由小写字母组成。把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。 思路 贪心。 不断选择从最左边起最小的区间。 假设第一个字母是 ‘a’,那么第一个区间一定包含最后一次出现的 ’a‘。但第一个 ’a’ 和最后一个 ‘a’ 之间可能还有其他字母,这些字母会让区间变大。 对于遇到的每一个字母,去找这个字母最后一次出现的...

weixin_43525710的博客 486

807给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意: 若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。s,t均只含有小写字母。如下实例。 示例 1: 输入: s = “anagram”, t = “nagaram” 输出: true 程序思想: 定义两个数组分别存储对应的字符串每个字符出现的次数,先判断两个字符串的长度否相同,若不相同则不可能为异位词,输出false;若相同则遍历字符串的每个字符,运行每个字符和a的差的ASCII码值表示

qq_43352316的博客 1720

Leetcode题目解析之字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。

整个题目的思路如下 1.先找到字符串中第一个字符在整字符串中最后出现的位置,将该位置标记为临时节点temp_node temp_node1=S.rfind(S[0]) 2.检查从字符串开头到临时节点中的每一个字符串,在临时节点后面有没有再次出现,如果出现,则更新临时节点的位置 3.返回每一个临时节点之前的字符串长度 class Solution(object): def partitionLabels(self, S): """ :type S: str

CNN入门者博客 2195

Qt6导入QtChart绘制图表(添加组件)

我在按照大佬们的说明添加QtChart时发现,我的电脑上并不能正确的添加QtChart并编译通过,所以在综合了两位大佬的说明又自己探索了一番后,正确编译通过,分享出来,以便同志们节省一些时间。

Nuaa0719301zyx的博客 2950

GD32F4系列定时器正交译码器实战:用TIMER1读取旋转编码器信号(附完整代码)

本文详细介绍了GD32F4系列定时器正交译码器的实战应用,重点讲解如何使用TIMER1模块高效读取旋转编码器信号。内容涵盖硬件连接、定时器配置、方向判断与速度计算等关键环节,并提供了完整的代码实现和优化建议,帮助开发者快速掌握GD32微控制器在工业控制和消费电子领域的编码器接口设计。

weixin_29169505的博客 201

“由各种字母组成的字符串S,另外一个字母数相对少一些的字符串T,设法最快的查出是否T中的字母均在S中?”...

问题:“由各种字母组成的字符串S,另外一个字母数相对少一些的字符串T,设法最快的查出是否T中的字母均在S中?” 思路: 判断集合A是否包含集合B,即判断其差(A-B)是否为空集。(A-B)不好算,可换为求(A -(A交B))。 考虑集合的表示方面,没要求顺序,即无序集。 仅考虑26个小写字母的情况,自然地想用位向量。用32位整数表示集合,第0位为1表示含'a',第1位为1表示含'b',……...

数据库天地 200

ArcGIS Pro 3.0实战:5分钟搞定GDB批量转SHP的Python脚本(附常见错误修复)

本文详细介绍了在ArcGIS Pro 3.0中使用Python脚本将地理数据库(GDB)中的要素类批量转换为Shapefile(SHP)格式的实战方法。文章提供了从基础到增强的完整脚本,重点解决了中文路径报错、字段名截断和属性表乱码等常见问题,并分享了错误处理与编码修复技巧,帮助用户高效、准确地完成数据格式转换与交换。

happy2的博客 766

(网易2018校招笔试)[编程题] 字符串碎片

题目: 一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,"aaabbaaac"是由下面碎片组成的:'aaa','bb','c'。牛牛现在给定一个字符串,请你帮助计算这个字符串的所有碎片的平均长度是多少。 输入描述: 输入包括一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),s只含小写字母('a'-'z') 输出描述: 输

(っ°Д°)っ  # 5769

基于大模型的围术期谵妄防控系统研究报告

围术期谵妄是一种急性脑功能障碍综合征,通常发生在手术前后一段时间内。患者会出现意识障碍、注意力不集中、认知功能紊乱、睡眠 - 觉醒周期失调等症状,严重者甚至会出现幻觉、妄想和攻击行为 。这种病症不仅会给患者自身带来极大的痛苦,还会对其术后康复产生严重的负面影响。从患者角度来看,围术期谵妄会显著延长患者的住院时间,增加患者的医疗费用负担。有研究表明,发生谵妄的患者住院时间平均比未发生者延长 2 - 3 天。长时间的住院不仅会影响患者的生活质量,还可能导致患者错过最佳的康复时机,影响身体机能的恢复。同时,谵妄还

嵌入式毕设/课设资料清单(速查手册·文档模板·题库,持续更新)→ 见最新文章 1071

深入解析LCD DRM驱动框架中的KMS与GEM机制

本文深入解析了Linux内核中DRM(Direct Rendering Manager)驱动框架的核心机制,重点剖析了KMS(内核模式设置)与GEM(图形执行管理器)的工作原理。KMS作为显示系统的总指挥,负责原子化地控制CRTC、Encoder、Plane等硬件资源,确保画面同步更新,避免撕裂;GEM则作为显存大管家,通过DUMB和PRIME机制高效管理图形缓冲区的分配、共享与同步。文章结合RK3568平台实战,阐述了如何利用这些机制优化显示性能,并提供了调试技巧与常见问题解决方案。

weixin_29188997的博客 387

StringMinimumWindowSubstring76LeetCode给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。

import java.util.HashMap; /** * 给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。 * 示例: * 输入: S = "ADOBECODEBANC", T = "ABC" * 输出: "BANC" * 说明: * 如果 S 中不存这样的子串,则返回空字符串 ""。 * 如果 S 中存在这样的子串,我们保证它是唯一...

happy_bigqiang的博客 4761

PrimeTime low power-多电压设计流程(2)

get_power_switches`、`get_supply_nets` 和 `get_supply_ports` 命令的操作方式类似,并具有类似的命令选项。PrimeTime 根据 UPF 命令构建电源供应网络,包括 create_power_domain、create_supply_net、create_supply_set、create_supply_port、set_domain_supply_net 和 connect_supply_net。电源集句柄是为电源域隐式创建的一个抽象电源集。

QRBQ 712

给定字符串 s 和 t ,判断 s 是否为 t 的子序列

LeetCode -392 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是...

qq_40093255的博客 4190

基于simulink的自动紧急制动系统(AEB)的功能验证

本文手把手指导使用Simulink构建自动紧急制动系统(AEB)模型,通过五个关键步骤完成功能验证:1)搭建车辆动力学模型;2)设计雷达传感器模型;3)开发基于碰撞时间(TTC)的决策逻辑;4)设计标准化测试场景;5)进行仿真分析。重点讲解了AEB的多级触发机制(预警、辅助制动、自动制动)和核心指标验证方法,包括制动时机判断、减速度性能等。通过典型场景仿真,展示了AEB如何在2.5秒TTC触发预警,1.2秒TTC启动自动制动,有效避免碰撞。文章还展望了行人AEB、传感器融合等进阶研究方向,为自动驾驶安全系统

amy_mhd的博客 267

YOLOv11改进策略【注意力机制篇】| SE、CBAM、ECA、CA、Swin Transformer等注意力机制全面解析与应用

本文详细介绍了五种主流的注意力机制及其在YOLOv11中的应用。通过合理的模块选择和位置部署,注意力机制能够显著提升目标检测性能。

QQ_778132974的博客 873

LeetCode 242[Python]. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。

LeetCode 242. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s = “anagram”, t = “nagaram” 输出: true 示例 2: 输入: s = “rat”, t = “car” 输出: false 说明: 你可以假设字符串只包含小写字母。 Code def isAnagram(self, s: str, t: str) -> bool: ss=sorted(s) tt=sorte

vvv__vvv的博客 569

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。

/* 25.给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若?s 和 t?中每个字符出现的次数都相同,则称?s 和 t?互为字母异位词。s,t均只含有小写字母。如下实例。 示例?1: 输入: s = "anagram", t = "nagaram" 输出: true */ #include<stdio.h> void Pan(char *s,char *t); int main() { char s[40],t[40]; printf("请输入字符.

thq_kuqi的博客 5939

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

LeetCode||有效的字母异位词(排列)--给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词

原题链接:https://leetcode-cn.com/problems/valid-anagram 题目描述: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false 说明: 你...

JockLiu的博客 2260

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LeetCode:判断s字符串是否为t字符串的子序列

Given a string s and a string t,check if s is subsequence of t. You may assume that there is only lower case English letters in both s and t.t is potentially a very long(length-=500,000)string and s is a short string(<=100). A subsequence of a string i.

Jiangtagong的博客 944

python字典:输入两个字符串s和t,它们只包含了小写字母。字符串t由字符串s随机重排,然后在随机位置添加一个字母。请找出在t中被添加的字母。

python字典:输入两个字符串s和t,它们只包含了小写字母。字符串t由字符串s随机重排,然后在随机位置添加一个字母。请找出在t中被添加的字母。

xzal12的博客 788

2021-10-30:有效的字母异位词。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位

2021-10-30:有效的字母异位词。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。s 和 t 仅包含小写字母。力扣242。 答案2021-10-30: 自然智慧即可。 1.判断s和t的长度是否相等。不等直接返回false。 2.统计字符串s的字符数,用map存下来。 3.遍历t,map的值减下来,如果map值变成了负数,返回false。 4.返回true。 时间复杂度:O(N)。 额外空

福大大架构师每日一题 2万+

给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母

Title: 找不同 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 力扣原题传送 提示: 0 <= s.length <= 1000 t.length == s.length + 1 s 和 t 只包含小写字母 解题思路: 分析题目我们发现字符串只存在一个不同的字符,因此我们可以使用位运算(异或)的特点解题,代码如下: class Solution { public: char find

nepu_bin的博客 3139

给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转

示例 1:输入:“ab-cd” 输出:“dc-ba” 示例 2:输入:“a-bC-dEf-ghIj” 输出:“j-Ih-gfE-dCba” 示例 3:输入:“Test1ng-Leet=code-Q!” 输出:“Qedo1ct-eeLg=ntse-T!” 提示:字符串长度小于等于100   要求非字母的字符都保留在原来的位置不变,可以先拷贝一个相同的字符串,这个字符...

weixin_43333173的博客 1612

给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。...

给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。 示例:   输入:     s = "abcd"     t = "abcde"   输出:     e 解题思路:该题的解法和上一篇我们解决问题的思路一样,同样此题我们需要定义两个数组arr1和arr2分别存储字符串s和...

diannuo5927的博客 5033
上一篇: 位运算——判断整数a是否为2的正整数幂?
下一篇: “数组a,长度为n(索引为0至n-1)。现要求更新数组的各个元素,使新数组的第i个元素等于原数组中除第i个元素之外各元素之积。”
CodeArhat
博客等级 码龄15年 13粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值