-
Codeforces Round #486 (Div. 3) - B. Substrings Sort문자열(String) 2018. 6. 19. 11:54반응형
https://codeforces.com/contest/988/problem/B
1. 문제
B. Substrings Sorttime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given strings. Each string consists of lowercase English letters. Rearrange (reorder) the given strings in such a way that for every string, all strings that are placed before it are its substrings.
String is a substring of string if it is possible to choose several consecutive letters in in such a way that they form . For example, string "for" is contained as a substring in strings "codeforces", "for" and "therefore", but is not contained as a substring in strings "four", "fofo" and "rof".
2. 알고리즘
문자열을 크기 별로 정렬 한다.
현재 문자가 다음 문자에 포함되어있는지 검사한다.
포함 되어 있지 않으면 NO 를 출력한다.
3. 코드
1234567891011121314151617181920212223242526272829303132333435363738#include <iostream>#include <sstream>#include <string>#include <algorithm>#include <functional>#include <vector>#include <list>#include <queue>#include <map>#include <set>using namespace std;int main() {std::ios::sync_with_stdio(false); cin.tie(0);int n;cin >> n;vector<string> s(n);for (int i = 0; i < n; ++i)cin >> s[i];sort(s.begin(), s.end(), [&] (const string &s, const string &t) {return s.size() < t.size();});for (int i = 0; i < n - 1; ++i) {if (s[i + 1].find(s[i]) == string::npos) {cout << "NO\n";return 0;}}cout << "YES\n";for (auto it : s)cout << it << endl;return 0;}cs 반응형'문자열(String)' 카테고리의 다른 글
백준 1152번: 단어의 개수 (0) 2018.06.27 백준 15837번 : 백준 온라인 저지 (0) 2018.06.20 프로그래머스 Level1 > 문자열 내 p와 y의 개수 (0) 2018.06.14 백준 1302번: 베스트셀러 (0) 2018.06.13 백준 3181번: 줄임말 만들기 (0) 2018.06.13