字符串基本题目,死得好懵。c++,求助,谢谢谢谢!!!
  • 板块学术版
  • 楼主lmrttx
  • 当前回复17
  • 已保存回复17
  • 发布时间2020/10/18 14:48
  • 上次更新2023/11/5 10:28:44
查看原帖
字符串基本题目,死得好懵。c++,求助,谢谢谢谢!!!
344382
lmrttx楼主2020/10/18 14:48

题目: 【文本编辑器(edit)】

问题描述 文本编辑器的基本功能就是统计文章的字符数。

但是,你想实现一款高级的文本编辑器,能够统计文章里每种字母的出现次数。

给定一个仅包含大小写字母,数字,英文逗号,英文句号,空格的字符串,请求出每种字母的出现次数。

注意,'A’与’a’算同一种字母,'B’与’b’算同一种字母…

数据输入

从文件edit.in中读入数据。

输入一行一个字符串。

结果输出 输出到文件edit.out中。

输出26个数字,第 i 个数字表示第 i 个英文字母的出现次数。

输入示例

Welcome to CSP2020.

输出示例

0 0 2 0 2 0 0 0 0 0 0 1 1 0 2 1 0 0 1 1 0 0 1 0 0 0

数据范围

对于20%的数据,仅包含大小写字母。

对于40%的数据,仅包含大小写字母和数字。

对于70%的数据,不包含空格。

对于100%的数据,字符串长度<=10^5.

我的代码: 样例过了,自己造的数据过了。结果交上去每个点竟然1000多ms,还wrong answer了。。。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<string>
using namespace std;
int a[27];
char ch[100001];
int main()
{
	//freopen("edit.in","r",stdin);
	//freopen("edit.out","w",stdout);
	gets(ch);
	for(register int i=0;i<strlen(ch);i++)
	{
		if(ch[i]=='\0')break;
		if(ch[i]<='Z'&&ch[i]>='A')
		a[ch[i]-'A']++;
		if(ch[i]<='z'&&ch[i]>='a')
		a[ch[i]-'a']++;
	}
	for(register int i=0;i<26;i++)
	{
		printf("%d ",a[i]);
	}
	return 0;
 } 

求助,谢谢

2020/10/18 14:48
加载中...