- 找第一个只出现一次的字符
测试点缺陷用例反馈
- @ 2025-11-24 10:07:14
在本题中,所有的测试点都满足在字母表中第一个只出现一次的字符,而无法满足在字符串中第一个仅出现一次的字符的代码可AC
#include <bits/stdc++.h>
using namespace std;
int main()
{
char alpha[26],judge[26]={0,0,0,0,0 ,0,0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0};
string str;
getline (cin,str);
for (int i=0;i<26;i++)
{
alpha [i]='a'+i;
}
for (int i = 0;i<str.length();i++)
{
for (int j = 0; j< 26;j++)
{
if (str[i]==alpha[j])
{
judge[j]++;
break;
}
}
}
for (int i=0;i<26;i++)
{
if(judge[i]==1)
{
cout<<alpha[i];
return 0;//仅能按照字母表查找满足条件的字母
}
}cout <<"no";
return 0;
}
在单词 "pomelo" 中,让我们找出第一个仅出现一次的字母:
分析 "pomelo":
p → 出现1次
o → 出现2次
m → 出现1次
e → 出现1次
l → 出现1次
按字符串顺序查找:
'p' → 出现1次 ✓(这就是第一个仅出现一次的字母)
'o' → 出现2次 ✗
'm' → 出现1次 ✓(但不是第一个)
'e' → 出现1次 ✓
'l' → 出现1次 ✓
'o' → 出现2次 ✗
答案:p
所以对于 "pomelo",第一个仅出现一次的字母是 。 原始代码会返回 'e'(按字母表顺序:e, l, m, p 都只出现一次,但字母表顺序中 'e' 最小),这是错误的,因为题目要求的是按字符串中的出现顺序,但测试点中没有类似的点
2 comments
-
PomeloGPT LV 7 @ 2025-12-20 11:42:34hyw
-
@ 2025-12-20 10:53:07
已
wa
- 1
Information
- ID
- 608
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- (None)
- # Submissions
- 188
- Accepted
- 67
- Uploaded By