C语言 · Anagrams问题
输入格式:输入有两行,分别为两个单词。
输出格式:输出只有一个字母Y或N,分别表示Yes和No。
输入输出样例
Nuclear
/*
思路:都转换成小写,在长度相等的情况下,
分别遍历记录下每个字母出现的次数。
最后比较各个数字是否相等。 字符串数组长度: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问题的更多相关文章
- 英语语言能力挑战游戏: anagrams & palindromes
基于英语语言的知名游戏(可以归类为智商挑战题): anagrams anagram定义为一个有着相同的字母的不同的词,例: stop的anagram为:tops, opts, pots, and sp ...
- 7、滑动窗口套路算法框架——Go语言版
前情提示:Go语言学习者.本文参考https://labuladong.gitee.io/algo,代码自己参考抒写,若有不妥之处,感谢指正 关于golang算法文章,为了便于下载和整理,都已开源放在 ...
- C语言 · 高精度加法
问题描述 输入两个整数a和b,输出这两个整数的和.a和b都不超过100位. 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储.对于这种问题,一般使用数组来处理. 定义一个数组A ...
- Windows server 2012 添加中文语言包(英文转为中文)(离线)
Windows server 2012 添加中文语言包(英文转为中文)(离线) 相关资料: 公司环境:亚马孙aws虚拟机 英文版Windows2012 中文SQL Server2012安装包,需要安装 ...
- iOS开发系列--Swift语言
概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...
- C语言 · 字符转对比
问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等.比如 Beijing 和 Hebei 2:两个字符串不仅长度相 ...
- JAVA语言中的修饰符
JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...
- Atitit 项目语言的选择 java c#.net php??
Atitit 项目语言的选择 java c#.net php?? 1.1. 编程语言与技术,应该使用开放式的目前流行的语言趋势1 1.2. 从个人职业生涯考虑,java优先1 1.3. 从项目实际来 ...
- 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】
说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...
随机推荐
- 【Win 10 应用开发】启动远程设备上的应用
这个功能必须在“红石-1”(build 14393)以上的系统版中才能使用,运行在一台设备上的应用,可以通过URI来启动另一台设备上的应用.激活远程应用需要以下前提: 系统必须是build 14393 ...
- 【原创】免费申请SSL证书【用于HTTPS,即是把网站从HTTP改为HTTPS,加密传输数据,保护敏感数据】
今天公司有个网站需要改用https访问,所以就用到SSL证书.由于沃通(以前我是在这里申请的)暂停了免费的SSL证书之后,其网站推荐了新的一个网站来申请证书,所以,今天因为刚好又要申请一个证书,所以, ...
- iOS开发之多种Cell高度自适应实现方案的UI流畅度分析
本篇博客的主题是关于UI操作流畅度优化的一篇博客,我们以TableView中填充多个根据内容自适应高度的Cell来作为本篇博客的使用场景.当然Cell高度的自适应网上的解决方案是铺天盖地呢,今天我们的 ...
- 对Thoughtworks的有趣笔试题实践
记得2014年在网上看到Thoughtworks的一道笔试题,当时觉得挺有意思,但是没动手去写.这几天又在网上看到了,于是我抽了一点时间写了下,我把程序运行的结果跟网上的答案对了一下,应该是对的,但是 ...
- isEmpty和isNull()区别
isEmpty和isNull()区别一个NULL字符串一定是一个空串,一个空串未必是一个NULL字符串例如:QString().isNull(): //结果为trueQString().isEm ...
- BPM费控管理解决方案分享
一.方案概述费用是除经营成本外企业的最主要支出,费用管理是财务管理的核心之一,加强企业内控管理如:费用申请.费用报销.费用分摊.费用审批.费用控制和费用支付等,通过科学有效的管理方法规范企业费用管理, ...
- Android手机相册的布局
实现类似下面的这种布局的方法
- 基于SOA架构的TDD测试驱动开发模式
以需求用例为基,Case&Coding两条线并行,服务(M)&消费(VC)分离,单元.接口.功能.集成四层质量管理,自动化集成.测试.交付全程支持. 3个大阶段(需求分析阶段.研发准备 ...
- 如何让spring mvc web应用启动时就执行特定处理
Asp.Net的应用中通过根目录下的Global.asax,在Application_Start方法中做一些初始化操作,比如:预先加载缓存项对网站热点数据进行预热,获取一些远程的配置信息等等. Spr ...
- JS案例之2——cycle元素轮播
元素轮播效果是页面中经常会使用的一种效果.这个例子实现了通过元素的隐藏和显示来表现轮播效果.效果比较简单. 效果图如下: 源代码如下: <!DOCTYPE html> <html&g ...