/*算法训练 删除数组零元素
时间限制:1.0s 内存限制:512.0MB
提交此题
从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,
其后元素向数组首端移动。注意,CompactIntegers函数需要接受数组及其元素个数作为参数,
函数返回值应为删除操作执行后数组的新元素个数。输出删除后数组中元素的个数并依次输出数组元素。
样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数)
5
3 4 0 0 2
样例输出:(输出格式说明:3为非零数据的个数,3 4 2 是以空格隔开的3个非零整数)
3
3 4 2
样例输入:
7
0 0 7 0 0 9 0
样例输出:
2
7 9
样例输入:
3
0 0 0
样例输出:
0
*/
#include <cstdio>
#include <algorithm>
using namespace std;
int n,m,t=0;
int a[100000];
int main()
{
scanf ("%d",&n);
for (int i=0;i<n;i++) {
scanf ("%d",&m);
if (m!=0)
a[t++]=m;
}
printf ("%d\n",t);
if (t!=0) {
for (int i=0;i<t;i++)
printf ("%d ",a[i]);
puts("");
}
return 0;
}
二、 /* 算法训练 Anagrams问题
时间限制:1.0s 内存限制:512.0MB
提交此题
问题描述
Anagrams指的是具有如下特性的两个单词:在这两个单词当中,
每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,
“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。
编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。
每一个单词的长度不会超过80个字符,而且是大小写无关的。
输入格式:输入有两行,分别为两个单词。
输出格式:输出只有一个字母Y或N,分别表示Yes和No。
输入输出样例
样例输入
Unclear
Nuclear
样例输出
Y
*/
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
char str1[100],str2[100];
int len1,len2,i,sum1,sum2;
scanf("%s%s",str1,str2);
len1=strlen(str1);
len2=strlen(str2);
for(i=0;i<len1;i++)
{
if(str1[i]>='a'&&str1[i]<='z')
str1[i]=str1[i]-('a'-'A');
}
for(i=0;i<len2;i++)
{
if(str2[i]>='a'&&str2[i]<='z')
str2[i]=str2[i]-('a'-'A');
}
sum1=sum2=0;
for(i=0;i<len1;i++)
sum1+=str1[i];
for(i=0;i<len2;i++)
sum2+=str2[i];
if(sum1==sum2)
printf("Y\n");
else
printf("N\n");
return 0;
}
蓝杯二十七蓝杯二十七 蓝杯二十七 蓝杯二十七
网友评论