부분 문자열의 개수를 구한 뒤 set에 집어넣으면 중복이 제거된다.
set의 크기를 출력하면 된다.
부분 문자열은 C++의 substr함수를 통해 구할 수 있다.
substr(시작인덱스, 부분 문자열 길이)이다.
부분문자열의 길이가 1 2 3 ... S의 길이이기 때문에 for문을 적절히 조절하여 구할 수 있다.
//백준, 11478 서로 다른 부분 문자열의 개수
#include <iostream>
#include <set>
std::set<std::string> set;
int main (){
std::string s;
std::cin >> s;
for(int i{1}; i<=s.size(); ++i){ //길이까지 진행해야지 끝까지 나옴
for(int j{0}; j<=s.size()-i; ++j){
set.insert(s.substr(j, i));
}
}
std::cout << set.size();
return 0;
}