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

C语言 · Anagrams问题

问题描述
  Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。
  输入格式:输入有两行,分别为两个单词。
  输出格式:输出只有一个字母Y或N,分别表示Yes和No。
  输入输出样例
样例输入
Unclear
Nuclear
样例输出
Y
 
 
  1 /*
  2     思路:都转换成小写,在长度相等的情况下,
  3           分别遍历记录下每个字母出现的次数。
  4           最后比较各个数字是否相等。
  5     
  6     字符串数组长度:100 ——单词长度不会超过80。 
  7 */
  8 #include<stdio.h>
  9 #include<string.h>
 10 #include<iostream>
 11 #include<ctype.h>//C语言转换大小写头文件 
 12 int main(){
 13     char c1[100],c2[100];//定义字符串数组 
 14     int a[26],b[26];//记录出现次数 
 15     memset(a,0,sizeof(a));
 16     memset(b,0,sizeof(b));
 17     scanf("%s\n%s",c1,c2);
 18     int len1,len2;
 19     len1=strlen(c1);//求字符串长度
 20     len2=strlen(c2);
 21     int i;
 22 
 23     if(len1 != len2){
 24         printf("N");
 25     }else{
 26         /*遍历c1*/
 27         for(i = 0; i < len1; i++){
 28 //            str1[i] = tolower(c1[i]);
 29             if(c1[i] == 'a'||c1[i] == 'A')
 30                 a[0]++;
 31             else if(c1[i] == 'b'||c1[i] == 'B')
 32                 a[1]++;
 33             else if(c1[i] == 'c'||c1[i] == 'C')
 34                 a[2]++;
 35             else if(c1[i] == 'd'||c1[i] == 'D')
 36                 a[3]++;
 37             else if(c1[i] == 'e'||c1[i] == 'E')
 38                 a[4]++;
 39             else if(c1[i] == 'f'||c1[i] == 'F')
 40                 a[5]++;
 41             else if(c1[i] == 'g'||c1[i] == 'G')
 42                 a[6]++;
 43             else if(c1[i] == 'h'||c1[i] == 'H')
 44                 a[7]++;
 45             else if(c1[i] == 'i'||c1[i] == 'I')
 46                 a[8]++;
 47             else if(c1[i] == 'j'||c1[i] == 'J')
 48                 a[9]++;
 49             else if(c1[i] == 'k'||c1[i] == 'K')
 50                 a[10]++;
 51             else if(c1[i] == 'l'||c1[i] == 'L')
 52                 a[11]++;
 53             else if(c1[i] == 'm'||c1[i] == 'M')
 54                 a[12]++;
 55             else if(c1[i] == 'n'||c1[i] == 'N')
 56                 a[13]++;
 57             else if(c1[i] == 'o'||c1[i] == 'O')
 58                 a[14]++;
 59             else if(c1[i] == 'p'||c1[i] == 'P')
 60                 a[15]++;
 61             else if(c1[i] == 'q'||c1[i] == 'Q')
 62                 a[16]++;
 63             else if(c1[i] == 'r'||c1[i] == 'R')
 64                 a[17]++;
 65             else if(c1[i] == 's'||c1[i] == 'S')
 66                 a[18]++;
 67             else if(c1[i] == 't'||c1[i] == 'T')
 68                 a[19]++;
 69             else if(c1[i] == 'u'||c1[i] == 'U')
 70                 a[20]++;
 71             else if(c1[i] == 'v'||c1[i] == 'V')
 72                 a[21]++;
 73             else if(c1[i] == 'w'||c1[i] == 'W')
 74                 a[22]++;
 75             else if(c1[i] == 'x'||c1[i] == 'X')
 76                 a[23]++;
 77             else if(c1[i] == 'y'||c1[i] == 'Y')
 78                 a[24]++;
 79             else if(c1[i] == 'z'||c1[i] == 'Z')
 80                 a[25]++;
 81         }
 82 
 83         /*遍历c2*/
 84         for(i = 0; i < len2; i++){
 85 //            c2[i] = tolower(c2[i]);
 86             if(c2[i] == 'a' || c2[i] == 'A')
 87                 b[0]++;
 88             else if(c2[i] == 'b'||c2[i] == 'B')
 89                 b[1]++;
 90             else if(c2[i] == 'c'||c2[i] == 'C')
 91                 b[2]++;
 92             else if(c2[i] == 'd'||c2[i] == 'D')
 93                 b[3]++;
 94             else if(c2[i] == 'e'||c2[i] == 'E')
 95                 b[4]++;
 96             else if(c2[i] == 'f'||c2[i] == 'F')
 97                 b[5]++;
 98             else if(c2[i] == 'g'||c2[i] == 'G')
 99                 b[6]++;
100             else if(c2[i] == 'h'||c2[i] == 'H')
101                 b[7]++;
102             else if(c2[i] == 'i'||c2[i] == 'I')
103                 b[8]++;
104             else if(c2[i] == 'j'||c2[i] == 'J')
105                 b[9]++;
106             else if(c2[i] == 'k'||c2[i] == 'K')
107                 b[10]++;
108             else if(c2[i] == 'l'||c2[i] == 'L')
109                 b[11]++;
110             else if(c2[i] == 'm'||c2[i] == 'M')
111                 b[12]++;
112             else if(c2[i] == 'n'||c2[i] == 'N')
113                 b[13]++;
114             else if(c2[i] == 'o'||c2[i] == 'O')
115                 b[14]++;
116             else if(c2[i] == 'p'||c2[i] == 'P')
117                 b[15]++;
118             else if(c2[i] == 'q'||c2[i] == 'Q')
119                 b[16]++;
120             else if(c2[i] == 'r'||c2[i] == 'R')
121                 b[17]++;
122             else if(c2[i] == 's'||c2[i] == 'S')
123                 b[18]++;
124             else if(c2[i] == 't'||c2[i] == 'T')
125                 b[19]++;
126             else if(c2[i] == 'u'||c2[i] == 'U')
127                 b[20]++;
128             else if(c2[i] == 'v'||c2[i] == 'V')
129                 b[21]++;
130             else if(c2[i] == 'w'||c2[i] == 'W')
131                 b[22]++;
132             else if(c2[i] == 'x'||c2[i] == 'X')
133                 b[23]++;
134             else if(c2[i] == 'y'||c2[i] == 'Y')
135                 b[24]++;
136             else if(c2[i] == 'z'||c2[i] == 'Z')
137                 b[25]++;
138         }
139         for(i=0;i<26;i++){
140             if(a[i] != b[i]){
141                 printf("N");
142                 break;
143             }
144         }
145         if(i>=26){
146             printf("Y");
147         }
148     }
149     return 0;
150 }

 

相关文章:

  • C# - 值类型、引用类型走出误区,容易错误的说法
  • 常用网址
  • python 04
  • Python程序-离散和线性图形
  • MongoDB安全事件的一些思考
  • java之多线程的理解
  • json常用方法介绍
  • NSOperation 开发
  • 批量更新MongoDB的列。
  • SOA是什么
  • Apache HttpCore (理解IO基础)
  • 启动eclipse时出现“Failed to load the JNI shared library jvm.dll”错误及解决
  • 软件项目技术点(3)——多画布职责分离
  • 浅尝springboot中的Actuator包(一)
  • 【使用教程】论Windows下必备的抓包工具Fiddler2如何安装证书(查看Https)
  • javascript面向对象之创建对象
  • js中的正则表达式入门
  • react 代码优化(一) ——事件处理
  • React-Native - 收藏集 - 掘金
  • Redash本地开发环境搭建
  • text-decoration与color属性
  • vue-router的history模式发布配置
  • Vue全家桶实现一个Web App
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 规范化安全开发 KOA 手脚架
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 前端面试题总结
  • 浅谈Golang中select的用法
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • (09)Hive——CTE 公共表达式
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (三)elasticsearch 源码之启动流程分析
  • (三)uboot源码分析
  • (转)jQuery 基础
  • (转)Mysql的优化设置
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET开发者必备的11款免费工具
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • [1204 寻找子串位置] 解题报告
  • [BZOJ5250][九省联考2018]秘密袭击(DP)
  • [C++]类和对象【上篇】
  • [CDOJ 838]母仪天下 【线段树手速练习 15分钟内敲完算合格】