cf554A使用set和string解决字符串重复问题

来源:互联网 发布:linux vi 删除一行 编辑:程序博客网 时间:2024/05/16 06:52

这道题当时自己A的,比较麻烦,而且想了好久,还用了unique()函数去重,比较麻烦,而且WA了一发

自己的代码:

#include<stdio.h>#include<math.h>#include<iostream>#include<algorithm>#include<cstring>#include<string>#include<cctype>#include<cassert>#include<cmath>#include<algorithm>#include<cctype>#include<map>#include<vector>#include<stack>#include<queue>#include<set>#include<cstdlib>using namespace std;#define LL long longint main(){   char s[25],b[25];   while(gets(s))   {       int l=strlen(s);       memcpy(b,s,sizeof(s));       sort(b,b+l);       int cc=unique(b,b+l)-b;       int num=(26-cc)*(l+1);       num+=cc*l;       num=num-(l-cc);       cout<<num<<endl;   }    return 0;}
看了题解之后,题解使用了JAVA中的hashset和string写的,使用了hashset的自动去重功能,直接在使用string连接暴力一发由于自己对JAVA不太熟悉,手打了一发set和string写的,比较简单,代码:


#include<iostream>#include<cstdio>#include<algorithm>#include<set>#include<string>using namespace std;int main(){    string s;while(cin>>s)    {        set<string> a;        for(int i=0;i<=s.length();i++)            for(char c='a';c<='z';c++)        {            a.insert(s.substr(0,i)+c+s.substr(i));        }        cout<<a.size()<<endl;    }}


0 0