LeetCode面试题Day13|LC383 赎金信、LC290 单词规律

ops/2024/9/24 16:30:59/

题目一:

指路:

. - 力扣(LeetCode)383 赎金信

思路与分析:

判断一个字符串中的字符能否由另一个字符串内的内容组成。也就是说现在我们手里有一些字母若干个,拿这些字母能否拼成所需要的东西。根据题意,我们有的是magazine中的字母,判断能否拼成ransomNote中的字母。那么我们判断的是在magazine中字母出现的频次,如果对应在ransomNote中对应字母出现的频次小于等于magazine中的频次,那么返回true,否则返回false。在这里我们定义一个哈希表,因为题目中说两封信皆有小写字母构成,也就是最多只有26个字母变换频次。那么定义一个26大小的哈希表,首先遍历我们有的字母也就是magazine中的字母,使其对应字母的频次增加。其次,遍历需要构成的ransomNote,如果其中也有我们遍历进哈希表的字母,则使哈希表中对应字母频次-1,最后如果频次<0则说明我们手头的字母不够拼成赎金信返回false,否则返回true。

代码:

class Solution {
public:bool canConstruct(string ransomNote, string magazine) {int has[26];for (int i = 0; i < magazine.size(); i++) {has[magazine[i] - 'a']++;  // 手里有这些字母}for (int i = 0; i < ransomNote.size(); i++) {has[ransomNote[i] - 'a']--;  // 能不能构成这些if (has[ransomNote[i] - 'a'] < 0) return false;}return true;}
};

题目二:

指路:

. - 力扣(LeetCode)290 单词规律

思路与分析:

第一个字符串中的一个字母对应第二个字符串中的一个单词,此为双射。用哈希表记录字符对应的单词,枚举二者的配对更新哈希表的值。

代码:

class Solution {
public:bool wordPattern(string pattern, string s) {unordered_map<string, char> s2p;unordered_map<char, string> p2s;int i = 0;int n = s.length();for (char c : pattern) {if (i >= n)return false;int j = i;while (j < n && s[j] != ' ') j++;const string &tmp = s.substr(i, j - i);if (s2p.count(tmp) && s2p[tmp] != c) {return false;}if (p2s.count(c) && p2s[c] != tmp) {return false;}s2p[tmp] = c;p2s[c] = tmp;i = j + 1;}return i >= n;}
};


http://www.ppmy.cn/ops/97734.html

相关文章

Linux ps命令详解

Linux系统中的ps命令是一个用于查看进程状态的工具&#xff0c;它提供了丰富的选项和参数&#xff0c;允许用户以不同的方式显示进程信息。 基本用法 无参数使用&#xff1a;在终端中输入ps命令&#xff0c;默认情况下会显示当前终端会话中属于当前用户的进程列表。 结合参数…

密码管理系统的自动化与集成:重塑安全与效率的双重飞跃

在数字化时代&#xff0c;密码作为保护个人信息、企业资产及敏感数据的第一道防线&#xff0c;其重要性不言而喻。然而&#xff0c;随着网络应用的激增和复杂性的提升&#xff0c;传统的密码管理方式——如使用简单密码、重复密码或依赖记忆——已难以满足现代安全需求&#xf…

代码随想录算法训练营43期 | Day 15——110.平衡二叉树、 257. 二叉树的所有路径、404. 左叶子之和、222. 完全二叉树的节点个数

代码随想录算法训练营 代码随想录算法训练营43期 | Day 15110.平衡二叉树257. 二叉树的所有路径404. 左叶子之和222. 完全二叉树的节点个数 代码随想录算法训练营43期 | Day 15 110.平衡二叉树 /*** Definition for a binary tree node.* struct TreeNode {* int val;* …

CRNN不定长验证码识别

原文:CRNN不定长验证码识别 - 知乎 (zhihu.com) 一、不定长验证码识别 关于验证码识别的任务,我们可以通过使用卷积神经网络采用多标签分类的方法来完成,但是当验证码是不定长的时候,就无法使用多标签分类的方法来解决了,在这类任务中,识别的目标是类似于序列的长条形图…

高校考勤小程序的设计与实现---附源码131039

摘 要 随着计算机的发展及网络技术的应用&#xff0c;当今社会正快速向信息自动化社会前进&#xff0c;信息自动化的作用也闲的的尤为重要&#xff0c;特别是各行业的管理领域&#xff0c;智能化信息处理已是提高效率、规范管理、客观审查的最有效方法。近年来&#xff0c;随着…

大模型16:大模型部署ChatGLM-6B

ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型&#xff0c;基于 General Language Model (GLM) 架构&#xff0c;具有 62 亿参数。结合模型量化技术&#xff0c;用户可以在消费级的显卡上进行本地部署&#xff08;INT4 量化级别下最低只需 6GB 显存&#xff09;。 Chat…

Redis事务

Redis支持事务机制&#xff0c;但mysql事务机制不同的是&#xff0c;redis的事务没有回滚这一说法 Redis的事务本质上是一组命令的集合&#xff0c;即一次执行多个命令: 事物中的命令按顺序执行&#xff0c;执行过程中&#xff0c;其他客户端的命令不会插入进来事物中的命令要…

Zookeeper用作服务发现~记当牛马的日子

1.什么是Zookeeper&#xff1f; Zookeeper是一个开源的、分布式的协调服务&#xff0c;它可以用于管理和协调大规模的分布式系统。它提供了一个简单的接口&#xff0c;用于处理分布式应用程序中的一些关键任务&#xff0c;比如统一命名服务、配置管理、分布式锁、分布式队列等…