问题描述
  Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。
  输入格式:输入有两行,分别为两个单词。
  输出格式:输出只有一个字母Y或N,分别表示Yes和No。
  输入输出样例
样例输入
Unclear
Nuclear
样例输出
Y
 
 
 /*
思路:都转换成小写,在长度相等的情况下,
分别遍历记录下每个字母出现的次数。
最后比较各个数字是否相等。 字符串数组长度:100 ——单词长度不会超过80。
*/
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<ctype.h>//C语言转换大小写头文件
int main(){
char c1[],c2[];//定义字符串数组
int a[],b[];//记录出现次数
memset(a,,sizeof(a));
memset(b,,sizeof(b));
scanf("%s\n%s",c1,c2);
int len1,len2;
len1=strlen(c1);//求字符串长度
len2=strlen(c2);
int i; if(len1 != len2){
printf("N");
}else{
/*遍历c1*/
for(i = ; i < len1; i++){
// str1[i] = tolower(c1[i]);
if(c1[i] == 'a'||c1[i] == 'A')
a[]++;
else if(c1[i] == 'b'||c1[i] == 'B')
a[]++;
else if(c1[i] == 'c'||c1[i] == 'C')
a[]++;
else if(c1[i] == 'd'||c1[i] == 'D')
a[]++;
else if(c1[i] == 'e'||c1[i] == 'E')
a[]++;
else if(c1[i] == 'f'||c1[i] == 'F')
a[]++;
else if(c1[i] == 'g'||c1[i] == 'G')
a[]++;
else if(c1[i] == 'h'||c1[i] == 'H')
a[]++;
else if(c1[i] == 'i'||c1[i] == 'I')
a[]++;
else if(c1[i] == 'j'||c1[i] == 'J')
a[]++;
else if(c1[i] == 'k'||c1[i] == 'K')
a[]++;
else if(c1[i] == 'l'||c1[i] == 'L')
a[]++;
else if(c1[i] == 'm'||c1[i] == 'M')
a[]++;
else if(c1[i] == 'n'||c1[i] == 'N')
a[]++;
else if(c1[i] == 'o'||c1[i] == 'O')
a[]++;
else if(c1[i] == 'p'||c1[i] == 'P')
a[]++;
else if(c1[i] == 'q'||c1[i] == 'Q')
a[]++;
else if(c1[i] == 'r'||c1[i] == 'R')
a[]++;
else if(c1[i] == 's'||c1[i] == 'S')
a[]++;
else if(c1[i] == 't'||c1[i] == 'T')
a[]++;
else if(c1[i] == 'u'||c1[i] == 'U')
a[]++;
else if(c1[i] == 'v'||c1[i] == 'V')
a[]++;
else if(c1[i] == 'w'||c1[i] == 'W')
a[]++;
else if(c1[i] == 'x'||c1[i] == 'X')
a[]++;
else if(c1[i] == 'y'||c1[i] == 'Y')
a[]++;
else if(c1[i] == 'z'||c1[i] == 'Z')
a[]++;
} /*遍历c2*/
for(i = ; i < len2; i++){
// c2[i] = tolower(c2[i]);
if(c2[i] == 'a' || c2[i] == 'A')
b[]++;
else if(c2[i] == 'b'||c2[i] == 'B')
b[]++;
else if(c2[i] == 'c'||c2[i] == 'C')
b[]++;
else if(c2[i] == 'd'||c2[i] == 'D')
b[]++;
else if(c2[i] == 'e'||c2[i] == 'E')
b[]++;
else if(c2[i] == 'f'||c2[i] == 'F')
b[]++;
else if(c2[i] == 'g'||c2[i] == 'G')
b[]++;
else if(c2[i] == 'h'||c2[i] == 'H')
b[]++;
else if(c2[i] == 'i'||c2[i] == 'I')
b[]++;
else if(c2[i] == 'j'||c2[i] == 'J')
b[]++;
else if(c2[i] == 'k'||c2[i] == 'K')
b[]++;
else if(c2[i] == 'l'||c2[i] == 'L')
b[]++;
else if(c2[i] == 'm'||c2[i] == 'M')
b[]++;
else if(c2[i] == 'n'||c2[i] == 'N')
b[]++;
else if(c2[i] == 'o'||c2[i] == 'O')
b[]++;
else if(c2[i] == 'p'||c2[i] == 'P')
b[]++;
else if(c2[i] == 'q'||c2[i] == 'Q')
b[]++;
else if(c2[i] == 'r'||c2[i] == 'R')
b[]++;
else if(c2[i] == 's'||c2[i] == 'S')
b[]++;
else if(c2[i] == 't'||c2[i] == 'T')
b[]++;
else if(c2[i] == 'u'||c2[i] == 'U')
b[]++;
else if(c2[i] == 'v'||c2[i] == 'V')
b[]++;
else if(c2[i] == 'w'||c2[i] == 'W')
b[]++;
else if(c2[i] == 'x'||c2[i] == 'X')
b[]++;
else if(c2[i] == 'y'||c2[i] == 'Y')
b[]++;
else if(c2[i] == 'z'||c2[i] == 'Z')
b[]++;
}
for(i=;i<;i++){
if(a[i] != b[i]){
printf("N");
break;
}
}
if(i>=){
printf("Y");
}
}
return ;
}

C语言 · Anagrams问题的更多相关文章

  1. 英语语言能力挑战游戏: anagrams & palindromes

    基于英语语言的知名游戏(可以归类为智商挑战题): anagrams anagram定义为一个有着相同的字母的不同的词,例: stop的anagram为:tops, opts, pots, and sp ...

  2. 7、滑动窗口套路算法框架——Go语言版

    前情提示:Go语言学习者.本文参考https://labuladong.gitee.io/algo,代码自己参考抒写,若有不妥之处,感谢指正 关于golang算法文章,为了便于下载和整理,都已开源放在 ...

  3. C语言 · 高精度加法

    问题描述 输入两个整数a和b,输出这两个整数的和.a和b都不超过100位. 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储.对于这种问题,一般使用数组来处理. 定义一个数组A ...

  4. Windows server 2012 添加中文语言包(英文转为中文)(离线)

    Windows server 2012 添加中文语言包(英文转为中文)(离线) 相关资料: 公司环境:亚马孙aws虚拟机 英文版Windows2012 中文SQL Server2012安装包,需要安装 ...

  5. iOS开发系列--Swift语言

    概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...

  6. C语言 · 字符转对比

    问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等.比如 Beijing 和 Hebei 2:两个字符串不仅长度相 ...

  7. JAVA语言中的修饰符

    JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...

  8. Atitit 项目语言的选择 java c#.net  php??

    Atitit 项目语言的选择 java c#.net  php?? 1.1. 编程语言与技术,应该使用开放式的目前流行的语言趋势1 1.2. 从个人职业生涯考虑,java优先1 1.3. 从项目实际来 ...

  9. 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】

    说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...

随机推荐

  1. 前端网络、JavaScript优化以及开发小技巧

    一.网络优化 YSlow有23条规则,中文可以参考这里.这几十条规则最主要是在做消除或减少不必要的网络延迟,将需要传输的数据压缩至最少. 1)合并压缩CSS.JavaScript.图片,静态资源CDN ...

  2. "无法删除数据库,因为该数据库当前正在使用"问题解决

    异常处理汇总-数据库系列  http://www.cnblogs.com/dunitian/p/4522990.html 以前刚学数据库的时候比较苦恼这个问题,今天删除的时候又看见了,正好一起记录一下 ...

  3. Golang 编写的图片压缩程序,质量、尺寸压缩,批量、单张压缩

    目录: 前序 效果图 简介 全部代码 前序: 接触 golang 不久,一直是边学边做,边总结,深深感到这门语言的魅力,等下要跟大家分享是最近项目 服务端 用到的图片压缩程序,我单独分离了出来,做成了 ...

  4. javascript动画系列第二篇——磁性吸附

    × 目录 [1]范围限定 [2]拖拽范围 [3]磁性吸附 前面的话 上一篇,我们介绍了元素拖拽的实现.但在实际应用中,常常需要为拖拽的元素限定范围.而通过限定范围,再增加一些辅助的措施,就可以实现磁性 ...

  5. C#制作简易屏保

    前言:前段时间,有个网友问我C#制作屏保的问题,我瞬间懵逼了(C#还可以制作屏保!).于是我去查阅相关资料,下面把C#如何制作屏保的过程及我学习过程的心得也记录下来,希望对需要的人能有帮助. 基本思路 ...

  6. React Native Android gradle下载慢问题解决

    很多人会遇到 初次运行 react-native run android的时候 gradle下载极慢,甚至会失败的问题 如下图 实际上这个问题好解决的 首先 把对应版本的gradle下载到本地任意一个 ...

  7. AutoIt实现Webdriver自动化测试文件上传

    在运用WebDriver进行自动化测试时,由于WebDriver自身的限制,对于上传文件时Windows弹出的文件选择窗口无法控制,通过在网上查找资料锁定使用AutoIt来控制文件上传窗口. Auto ...

  8. CSS命名规范——BEM思想(非常赞的规范)

    人们问我最多的问题之一是在CSS类名中“--”和“__”是什么意思?它们的出现是源于BEM和Nicolas Gallagher... BEM的意思就是块(block).元素(element).修饰符( ...

  9. 机器指令翻译成 JavaScript —— No.3 流程分割

    上一篇 我们讨论了跳转指令,并实现「正跳转」的翻译,但最终困在「负跳转」上.而且,由于线程模型的差异,我们不能 1:1 的翻译,必须对流程进行一些改造. 当初之所以选择翻译,而不是模拟,就是出于性能考 ...

  10. XSS 前端防火墙 —— 无懈可击的钩子

    昨天尝试了一系列的可疑模块拦截试验,尽管最终的方案还存在着一些兼容性问题,但大体思路已经明确了: 静态模块:使用 MutationObserver 扫描. 动态模块:通过 API 钩子来拦截路径属性. ...