当前位置: 首页 > article >正文

判断是否是变位词

题目:给定两个单词,判断这两个单词是否是变位词。如果两个单词的字母完全相同,只是位置有所不同,则称这两个单词为变位词。例如eat和tea是变位词。

答:问题分析:判断是否为变位词,只需要分别统计两个单词的各个字母的次数,如果各个字母出现的次数一样,即为变位词。

思路:直接简单地统计两个单词的各个字母的次数,需要两个长度为52的数组(区分字母大小写),来存放各自的字母出现次数,并且统计好了之后还需要比较这两个数组是否相同。因此,可以采取以下方式:

       for(int i=0;i<word1.length();i++){

              a[word1[i]-'a']++;

              a[word1[i]-'a']--;

       }

只需要一个数组,存放的是两个单词的字母出现次数的差,差为0,证明是字母出现的次数一样。(注意,具体实现还需要考虑字母大小写)

具体代码

#include<iostream>
#include<string>
using namespace std;

int a[52];//初始值为0 

bool isBianweici(string word1,string word2){
	if(word1.length()!=word1.length()) return false;
	for(int i=0;i<word1.length();i++){
		if(word1[i]>='a'&&word1[i]<='z'){//统计word1中字母出现次数 
			a[word1[i]-'a']++;
		}else if(word1[i]>='A'&&word1[i]<='Z'){
			a[word1[i]-'A'+26]++;
		}
		if(word2[i]>='a'&&word2[i]<='z'){//减去word2字母出现次数 
			a[word2[i]-'a']--;
		}else if(word2[i]>='A'&&word2[i]<='Z'){
			a[word2[i]-'A'+26]--;
		}
	}
	for(int i=0;i<52;i++){
		if(a[i]!=0){ 
			return false;//不是变位词 
		}
	} 
	return true;
}
int main(){
	string s1,s2;
	cout<<"请输入第1个单词:(区分大小写)";
	cin>>s1; 
	cout<<"请输入第2个单词:(区分大小写)";
	cin>>s2;
	if(isBianweici(s1,s2)){
		cout<<s1<<"和"<<s2<<"是变位词"<<endl;
	}else{
		cout<<s1<<"和"<<s2<<"不是变位词"<<endl;
	}
	return 0; 
}


http://www.kler.cn/a/377828.html

相关文章:

  • Unity中LineRenderer使用MeshCollider方法参考
  • 基于STM32F103控制L298N驱动两相四线步进电机
  • GIT与github的链接(同步本地与远程仓库)
  • GamePlay UE网络同步
  • 简单了解函数递归
  • Mac mini m4安装PD和Crack和关闭SIP
  • 探究Spring中所有的扩展点
  • c++中局部变量和全局变量同名,使用::访问全局变量
  • postman 获取登录接口中的返回token并设置为环境变量的方法 postman script
  • GB/T 28046.3-2011 道路车辆 电气及电子设备的环境条件和试验 第3部分:机械负荷(4)
  • Spring Boot 集成 ActiveMQ 实战指南
  • Rust 文档生成与发布
  • 第三十五篇:HTTP报文格式,HTTP系列二
  • 三种网络配置方法nmcli、ip、ifcfg文件
  • parted 磁盘分区
  • Vue将所展示文本内容的换行与空格显示出来
  • React + SpreadJS 开发时常见问题
  • 配置elk插件安全访问elk前台页面
  • 插值表达式
  • 【缓存与加速技术实践】Redis集群
  • YOLOv6-4.0部分代码阅读笔记-common.py
  • 如何完成redis集群部署及性能优化?
  • K8S概念及其常见组件和整体架构
  • Git下载-连接码云-保姆级教学(连接Gitee失败的解决)
  • 【Jetson AGX Orin(Arm Linux)安装pyqt5及Format_BGR888报错】
  • 学Linux的第六天