【Leetcode -383.赎金信 -387.字符串中的第一个唯一字符】

news/2024/11/23 3:56:49/

Leetcode

  • Leetcode -383.赎金信
  • Leetcode - 387.字符串中的第一个唯一字符

Leetcode -383.赎金信

题目:给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。
如果可以,返回 true ;否则返回 false 。
magazine 中的每个字符只能在 ransomNote 中使用一次。

示例 1:
输入:ransomNote = “a”, magazine = “b”
输出:false

示例 2:
输入:ransomNote = “aa”, magazine = “ab”
输出:false

示例 3:
输入:ransomNote = “aa”, magazine = “aab”
输出:true

我们的思路是,创建两个数组并初始化为0,将两个字符串中的元素分别作为这两个数组的下标记录它们出现的次数,最后比较它们的出现次数的关系;下面看代码以及注释:

		bool canConstruct(char* ransomNote, char* magazine){//创建两个数组并初始化为0int hash[26] = { 0 };int tmp[26] = { 0 };//hash数组以ransomNote的元素减去'a'作为下标,每次相同的元素累加起来for (int i = 0; i < strlen(ransomNote); i++){hash[ransomNote[i] - 'a'] += 1;}//tmp数组以magazine的元素减去'a'作为下标,每次相同的元素也累加起来for (int i = 0; i < strlen(magazine); i++){tmp[magazine[i] - 'a'] += 1;}//最后比较这两个数组,在26个字母范围内,//如果是相同的字母,在hash数组中存放的个数大于tmp数组中的个数,就返回false//因为要使magazine这个字符串中的元素可以组成ransomNote这个字符串,//那么tmp数组中的以magazine字符串的元素作为下标的元素个数必须要大于hash数组中的for (int i = 0; i < 26; i++){if (hash[i] > tmp[i]){return false;}}//如果前面没有返回,就返回truereturn true;}

Leetcode - 387.字符串中的第一个唯一字符

题目:给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 - 1 。

示例 1:
输入 : s = “leetcode”
输出 : 0

示例 2 :
输入 : s = “loveleetcode”
输出 : 2

示例 3 :
输入 : s = “aabb”
输出 : -1

我们的思路是,创建一个数组并初始化为0,以s字符串中的元素s[ i ]作为这个数组的下标,记录每个元素出现的次数;然后检查数组以s[ i ]为下标第一次等于1的位置,返回 i 这个位置即可;

		int firstUniqChar(char* s){//创建一个hash数组并初始化为0int hash[26] = { 0 };//以s字符串中的元素s[i]作为hash数组的下标,记录s[i]出现的次数for (int i = 0; i < strlen(s); i++){hash[s[i] - 'a'] += 1;}//检查数组以s[i]为下标第一次等于1的位置,返回i即可for (int i = 0; i < strlen(s); i++){if (hash[s[i] - 'a'] == 1){return i;}}//没有即返回-1return -1;}

http://www.ppmy.cn/news/61037.html

相关文章

gtest之primer

目录 准备工作测试宏两个概念Test Fixturesmain函数关于线程安全 准备工作 GoogleTest官网&#xff1a;https://google.github.io/googletest/ gtest github仓库&#xff1a;https://github.com/google/googletest 目前最新稳定版本&#xff1a;https://github.com/google/goo…

手动实现 Spring 底层机制【初始化 IOC容器+依赖注入+BeanPostProcessor 机制+AOP】

目录 手动实现 Spring 底层机制【初始化 IOC容器依赖注入BeanPostProcessor 机制AOP】 前面我们实际上已经用代码简单实现了 代码演示使用框架 创建一个maven项目 创建UserAction类 创建UserDao类 创建UserService类 创建beans.xml 说明 创建AppMain类 运行效果 如图…

python处理图像的各种技术镜像、旋转、遮挡、叠加、条带化

2.6 图像镜面对称 1、将图像水平镜面转换。 2、将图像垂直镜面转换。 import random #导入模块 import numpy as np import matplotlib.pyplot as plt a plt.imread("1.jpg") # 将图像沿着水平方向重复三次。 ba.copy() da.copy() # 将图像水平镜面转换。&…

对象浅拷贝的5种方式

参考原文:浅拷贝的五种实现方式 - 掘金 (juejin.cn) 哈喽 大家好啊 最近发现自己对对象都不是很熟练&#xff0c;特别是涉及到一些复制&#xff0c;深浅拷贝的东西 1.Object.assign 首先 我们创建一个空对象obj1 然后创建一个对象obj2 用object.assign(目标对象&#xff0c…

Java --- String类

&#xff08;一&#xff09;String java.lang.String 类代表字符串。Java 程序中所有的字符串文字&#xff08;例如 "hello" &#xff09;都可以看作是实现此类的实例。 字符串是常量&#xff0c;用双引号引起来表示。它们的值在创建之后不能更改。 字符串 St…

【Ehcache技术专题】「入门到精通」带你一起从零基础进行分析和开发Ehcache框架的实战指南(设置缓存)

带你一起从零基础进行分析和开发Ehcache框架的实战指南 缓存大小的设置CacheManager级别maxBytesLocalHeapmaxBytesLocalOffHeapmaxBytesLocalDisk配置案例Xml代码 Cache级别Cache支持百分比控制百分比需要注意要点大小限制注意要点 Cache指定元素数量maxEntriesLocalHeapmaxEn…

QT教程demo之串口助手代码设计实现

关注WeChat Official Account 南山府嵌入式获取更多精彩 我创建了一个群关注V号后加入。因为这里不允许添加二维码 代码&#xff1a;QT_Pr 1-QT开发串口助手需要的基本文件 在QT6开发串口助手时&#xff0c;通常需要以下头文件&#xff1a; #include <QSerialPort> #i…

pulsar-admin接入项目

练手项目 第一步&#xff1a;添加依赖 <dependency> <groupId>org.apache.pulsar</groupId> <artifactId>pulsar-client-admin</artifactId> <version>2.10.1</version> </dependency> 第二步&#xff1a;编写代码 Stri…