AcWing 3610. 找位置
原题链接
简单
作者:
code-gray
,
2024-03-05 12:41:17
,
所有人可见
,
阅读 28
C写法
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
const int N = 200;
char str[N];
int cnt[N];
char res[N][6 * N];
bool f[N];
int main()
{
scanf("%s",str);
int len = strlen(str);
for(int i = 0;i < len;i++) cnt[str[i]]++;
for(int i = 0;i < len;i++)
{
if(cnt[str[i]] > 1)
{
char num[10];
sprintf(num,"%d",i);
int back = strlen(res[str[i]]);
res[str[i]][back] = str[i];
strcat(res[str[i]],":");
strcat(res[str[i]],num);
strcat(res[str[i]],",");
}
}
for(int i = 0;i < len;i++)
{
if(!f[str[i]] && cnt[str[i]] > 1)
{
for(int j = 0;j < strlen(res[str[i]]) - 1;j++)
{
printf("%c",res[str[i]][j]);
}
printf("\n");
f[str[i]] = true;
}
}
return 0;
}