有效的字母异位词(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。

相关推荐
武大打工仔12 分钟前
用 Java 复现哲学家就餐问题
算法
要做朋鱼燕13 分钟前
【数据结构】用堆解决TOPK问题
数据结构·算法
忒可君16 分钟前
C# winform FTP功能
开发语言·windows·c#
minji...41 分钟前
C++ string类(STL简介 , string类 , 访问修改字符)
开发语言·c++
Forward♞1 小时前
Qt——文件操作
开发语言·c++·qt
十五年专注C++开发1 小时前
CMake进阶: CMake Modules---简化CMake配置的利器
linux·c++·windows·cmake·自动化构建
秋难降1 小时前
LRU缓存算法(最近最少使用算法)——工业界缓存淘汰策略的 “默认选择”
数据结构·python·算法
老虎06272 小时前
JavaWeb前端02(JavaScript)
开发语言·前端·javascript
Python私教2 小时前
YggJS RLogin暗黑霓虹主题登录注册页面 版本:v0.1.1
开发语言·javascript·ecmascript
winds~2 小时前
【git】 撤销revert一次commit中的某几个文件
linux·c++