有效的字母异位词(C++解法)

题目

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

注意:st中每个字符出现的次数都相同,则称 st互为字母异位词。

示例 1:

复制代码
输入: s = "anagram", t = "nagaram"
输出: true

示例 2:

复制代码
输入: s = "rat", t = "car"
输出: false

C++代码

cpp 复制代码
#include <iostream>
#include <vector>
using namespace std;

/*
* 有效的字母异位词问题
* 定义一个26个字符长的数组,迭代计算s中字符的个数,
* 如果再将t中的相同字符个数减去,结果小于0则输出false
*/
bool isAnagram(string s, string t) {
	if (s.size() != t.size()) {
		return false;
	}
	vector<int> cnt(26);
	for (auto c : s) {
		cnt[c - 'a']++;
	}
	for (auto c : t) {
		cnt[c - 'a']--;
		if (cnt[c - 'a'] < 0) {
			return false;
		}
	}
	return true;
}

int main() {
	string s = "anagram";
	string t = "nagaram";
	bool ans = isAnagram(s, t);
	cout << boolalpha << ans << endl;
	return 0;
}

分析

有效的字母异位词问题,定义一个26个字符长的数组,迭代计算s中字符的个数,如果再将t中的相同字符个数减去,结果小于0则输出 false。

相关推荐
DaphneOdera173 分钟前
Git Bash 配置 zsh
开发语言·git·bash
Code侠客行10 分钟前
Scala语言的编程范式
开发语言·后端·golang
lozhyf29 分钟前
Go语言-学习一
开发语言·学习·golang
一只码代码的章鱼34 分钟前
粒子群算法 笔记 数学建模
笔记·算法·数学建模·逻辑回归
小小小小关同学34 分钟前
【JVM】垃圾收集器详解
java·jvm·算法
dujunqiu39 分钟前
bash: ./xxx: No such file or directory
开发语言·bash
圆圆滚滚小企鹅。40 分钟前
刷题笔记 贪心算法-1 贪心算法理论基础
笔记·算法·leetcode·贪心算法
爱偷懒的程序源42 分钟前
解决go.mod文件中replace不生效的问题
开发语言·golang
日月星宿~42 分钟前
【JVM】调优
java·开发语言·jvm
Kacey Huang1 小时前
YOLOv1、YOLOv2、YOLOv3目标检测算法原理与实战第十三天|YOLOv3实战、安装Typora
人工智能·算法·yolo·目标检测·计算机视觉