为什么测试时有部分错误
有一段英文由若干单词组成, 单词之间用空格隔开,编写程序提取其中的所有不同的单词,按字典序从小到大输出。输入格式:
输入一行字符串
输出格式:
输出每个单词,每个单词占一行
输入样例:
hello world
输出样例:
hello
world
#include <bits/stdc++.h>
using namespace std;
const int N = 1010;
map<string, int> cnt;
int main()
{
string s;
getline(cin, s);
for(int i = 0; i < s.size(); i ++)
{
if(isalpha(s)) //是字母,说明找到一个有效单词
{
string word = ""; //存储以s为首字母的这个单词
int j = i;
while(j < s.size() && isalpha(s)) //如果是字母一直往后找
{
word += tolower(s);
j ++;
}
cnt ++; //循环结束,说明word就是刚才找到的单词
i = j;
}
}
for(auto : cnt) cout << k << endl;
return 0;
}
没办法,只能造数据自己去hack 本帖最后由 zhangjinxuan 于 2023-3-13 19:01 编辑
试试这个:
#include <bits/stdc++.h>
using namespace std;
const int N = 1010;
map<string, int> cnt;
int main()
{
string s;
getline(cin, s);
for(int i = 0; i < s.size(); i ++)
{
if(isalpha(s)) //是字母,说明找到一个有效单词
{
string word = ""; //存储以s为首字母的这个单词
int j = i;
while(j < s.size() && isalpha(s)) //如果是字母一直往后找
{
word += s;
j ++;
}
cnt ++; //循环结束,说明word就是刚才找到的单词
i = j;
}
}
for(auto : cnt) cout << k << endl;
return 0;
}
解释:题目说若干单词,单词可能有字母,所以你可以尝试不用什么转小写,如果还是错的,就把字母判断改成非空格判断
页:
[1]