字符串:判断两个字符串是否互为变形词

博客聚焦于判断两个字符串是否互为变形词这一问题,虽未给出具体内容,但核心围绕字符串的变形词判断,属于信息技术领域中字符串处理相关内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//★题目:判断两个字符串是否互为变形词
//要求:给定两个字符串str1和str2,如果str1和str2中出现的字符种类一样且每种字符出现的次数也一样
//      那么str1与str2互为变形词。请实现函数判断两个字符串是否互为变形词
//分析:假设字符的编码值在0-255之间,申请长度为256的数组,map[a] = b 代表字符a出现了b次
//      遍历str1统计每种字符的词频,然后遍历str2,把map中的词频减下来

#include "a_string.h"//我自己定义的头文件

using namespace std;

bool isDeformation(string str1, string str2);

int main()
{
	string str1 = "123";
	string str2 = "231";
	string str3 = "243";
	cout << isDeformation(str1, str2) << endl;
	cout << isDeformation(str1, str3) << endl;
	system("pause");
	return 0;
}

bool isDeformation(string str1, string str2)
{
	if (str1.empty()||str2.empty()||str1.size() != str2.size())
	{
		return false;
	}

	const char *chas1 = str1.c_str();
	const char *chas2 = str2.c_str();
	int map[255] = { 0 };
	for (int i = 0; i < str1.size(); i++)
	{
		map[chas1[i]]++;
	}
	for (int i = 0; i < str2.size(); i++)
	{
		if (map[chas2[i]] == 0)
		{
			return false;
		}
		else
		{
			map[chas2[i]]--;
		}
	}
	return true;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值