判断是否是变位词

题目:给定两个单词,判断这两个单词是否是变位词。如果两个单词的字母完全相同,只是位置有所不同,则称这两个单词为变位词。例如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.rhkb.cn/news/463075.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决python matplotlib画图无法显示中文的问题

在用matplotlib做一个简单的可视化统计时&#xff0c;由于标签是中文&#xff0c;无法显示&#xff0c;只是显示出来一些方框&#xff08;如图&#xff09; 问题在于&#xff0c;当前matplotlib使用的字体不支持中文&#xff0c;我们进行替换就可以了 我想替换为黑体&#xff…

Docker:网络

Docker&#xff1a;网络 Docker 网络架构CNMLibnetwork驱动网络类型 命令docker network lsdocker network inspectdocker network createdocker network connectdocker network disconnectdocker network prunedocker network rm 网络操作bridgehostcontainernone Docker 网络…

力扣排序268题 数字丢失

题目&#xff1a; 丢失的数字 给定一个包含[0,n]中n各数的数组nums&#xff0c;找出[0,n]这个范围 内没有出现在数组中的那个数。 示例1&#xff1a; 输出&#xff1a;n 3,因为有3个数字&#xff0c;所以所有的数字都在范围 [0,3]内。2是丢失的数字&#xff0c;因为它没有出现…

自动化测试类型与持续集成频率的关系

持续集成是敏捷开发的一个重要实践&#xff0c;可是究竟多频繁的集成才算“持续”集成&#xff1f; 一般来说&#xff0c;持续集成有3种常见的集成频率&#xff0c;分别是每分钟集成、每天集成和每迭代集成。项目组应当以怎样的频率进行集成&#xff0c;这取决于测试策略&…

Gitlab-runner running on Kubernetes - hostAliases

*Config like this. *That in your helm values.yaml.

从头开始学PHP之面向对象

首先介绍下最近情况&#xff0c;因为最近入职了且通勤距离较远&#xff0c;导致精力不够了&#xff0c;而且我发现&#xff0c;人一旦上了班&#xff0c;下班之后就不想再进行任何脑力劳动了&#xff08;对大部分牛马来说&#xff0c;精英除外&#xff09;。 话不多说进入今天的…

【综合算法学习】(第十五篇)

目录 图像渲染&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 岛屿数量&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 图像渲染&#xff08;medium&#xff09; 题目解析 1.题目链接&#xff1a;. - 力扣&#xff08;LeetCode&…

教育技术革新:SpringBoot在线试题库系统开发

2 相关技术 2.1 Spring Boot框架简介 Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。通过这种方式&#xff0c;Sprin…

OTFS延迟多普勒信道模型(信道模型代码)

一、信道模型公式 1、延迟多普勒域信道模型 在一个M*N维的延迟多普勒域中&#xff0c;定义M为子载波数&#xff0c;子载波间隔为 对应倒数时隙长度为&#xff0c;信号总长度为,L-1表示最大径数。 公式中冲激响应延迟域移动的分辨率&#xff0c;如下图中Delay轴的一格也就是即,多…

Failed to search for file: Cannot update read-only repo

今天在读《Linux就该这么学》并上机操作RedHat Linux 8。结果在执行指令时却出现了问题: 我明明已经是root权限了&#xff0c;我于是上网去找&#xff0c;但也没看到合适的解答。为什么会和书上的操作结果不一样。 后来我突然意识到是不是我打了不该打的空格&#xff0c;于是…

Android中SurfaceView与GLSurfaceView 的关系

SurfaceView 与 GLSurfaceView 的关系 在 Android 开发中&#xff0c;SurfaceView 和 GLSurfaceView 是实现自定义渲染效果的关键组件。它们提供了不同的渲染方式&#xff0c;适用于不同的应用场景。我们将通过以下几个方面详细说明 SurfaceView 和 GLSurfaceView 的特点及实现…

游戏引擎中的颜色科学

游戏引擎中的渲染组件的作用是生成一个二维图片&#xff0c;在特定的时间从给定的视点观察的方向看到的一个三维空间的状态。他们的生成每一张图片都会被称为帧&#xff0c;他们生成的速度称为帧率。 像素 在每一帧中&#xff0c;游戏引擎的视觉输出基本上是一大堆彩色像素&a…

计算机网络-以太网小结

前导码与帧开始分界符有什么区别? 前导码--解决帧同步/时钟同步问题 帧开始分界符-解决帧对界问题 集线器 集线器通过双绞线连接终端, 学校机房的里面就有集线器 这种方式仍然属于共享式以太网, 传播方式依然是广播 网桥: 工作特点: 1.如果转发表中存在数据接收方的端口信息…

D56【python 接口自动化学习】- python基础之异常

day56 异常的产生与分类 学习日期&#xff1a;20241102 学习目标&#xff1a;模块与标准库 -- 72 初始异常&#xff1a;异常的产生与分类 学习笔记&#xff1a; 什么是异常 异常的分类 总结 引发异常时&#xff0c;代码会进行中断exception-所有内置的非系统退出类异常都派…

轴承性能对步进电机的影响

步进电机作为一种重要的电动机类型&#xff0c;在工业自动化、机器人技术以及各种机械设备中得到了广泛应用。步进电机的性能直接关系到其控制精度、响应速度和可靠性&#xff0c;而其中一个关键的组成部分——轴承&#xff0c;往往被认为是影响步进电机性能的一个重要因素。 一…

Java项目实战II基于Spring Boot的个人云盘管理系统设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 基于Spring Boot的个人云盘管理系统设计…

Java类和对象(上篇)

今天学习Java的类【认识类&#xff0c;并学习有关类的操作&#xff08;1.定义和使用 2.实例化 3. this引用 4.构造对象和初始化对象&#xff09;】 目录 1. 初步认知面向对象1.1 面向对象的概念1.1 面向对象和面向过程 2. 类定义和使用2.1 认识类2.2 类的定义格式2.3 练习2.3.1…

【路径——Dijkstra】

题目 代码 #include <bits/stdc.h> using namespace std; #define x first #define y second typedef pair<int, int> PII; const int N 2025, M N * N; int h[N], e[M], ne[M], w[M], idx; int dist[N]; int n 2021; void add(int a, int b, int c) {w[idx] …

ubuntu安装与配置Nginx(1)

在 Ubuntu 上安装和配置 Nginx 是相对简单的。以下是一个逐步指南&#xff1a; 1. 更新系统包 首先&#xff0c;确保你的系统是最新的。打开终端并运行&#xff1a; sudo apt update sudo apt upgrade2. 安装 Nginx 使用以下命令安装 Nginx&#xff1a; sudo apt install …

基于XSS的flash钓鱼上线Cobalt strike

题记 学习网安真是让人愉快啊&#xff0c;天天晚上睡觉之前都要想点技术问题&#xff0c;我是不是快魔怔了&#xff0c;今天打算搞XSS的flash钓鱼&#xff0c;完成一下写毕业论文的时候没有完成的事情。学习最有趣的地方就是在学习过程中发现新的不会的出现&#xff0c;下一个…