NC52372. 本质不同字符串
描述
输入描述
输入一个字符串s(1 <= |s| <= 1000)
输出描述
输出一个数表示答案
示例1
输入:
aaba
输出:
8
示例2
输入:
aaaa
输出:
4
C++11(clang++ 3.9) 解法, 执行用时: 730ms, 内存消耗: 207052K, 提交时间: 2019-08-16 15:27:37
#include<bits/stdc++.h> using namespace std; string t; unordered_map<string,int>mp; int main() { char s[1010]; scanf("%s",s); int len = strlen(s),ans=0; for(int i=0;i<len;i++){ t=""; for(int j=i;j<len;j++){ t+=s[j]; if(mp.count(t)==NULL){ mp[t]=1;ans++; } } } cout<<ans<<endl; }
C++14(g++5.4) 解法, 执行用时: 661ms, 内存消耗: 210916K, 提交时间: 2019-08-19 23:16:50
#include<bits/stdc++.h> using namespace std; int main() { set<string>ss; string str; char s[2000]; cin>>s; for(int i=0;i<strlen(s);i++) { str.clear(); for(int j=i;j<strlen(s);j++) { str+=s[j]; ss.insert(str); } } cout<<ss.size()<<endl; }
pypy3 解法, 执行用时: 637ms, 内存消耗: 261948K, 提交时间: 2022-08-12 16:22:20
d = dict() s = input() for i in range(1,len(s) + 1): for j in range(0,len(s) - i + 1): ss = s[j:j + i] d[ss] = 1 print(len(d))
Python3 解法, 执行用时: 793ms, 内存消耗: 217784K, 提交时间: 2023-06-06 00:34:50
s = input() a = set() for b in range(1,len(s)+1): for i in range(len(s)-b+1): a.add(s[i:i+b]) print(len(a))