Untitled
unknown
c_cpp
6 months ago
1.8 kB
7
Indexable
Never
#include <iostream> #include <string> using namespace std; bool Find(string* rg, int pos){ for (int i = 0; i < pos; i++){ if (rg[i] == rg[pos]){ return true; } } return false; } int main(){ string buffer = ""; getline(cin, buffer); int n = stoi(buffer); string* a = new string[n]; string* rg = new string[n]; for (int i = 0; i < n; i++){ getline(cin, a[i]); a[i] = " " + a[i] + " "; int j = 0; while (j < a[i].length()){ if (a[i][j] != ' ' && isalpha(a[i][j-1]) && isalpha(a[i][j+1])){ a[i].erase(j,1); } else{ if (j > 0 && a[i][j-1] == ' '){ a[i][j] = toupper(a[i][j]); } if (j < a[i].length() - 1 && a[i][j+1] == ' '){ a[i][j] = tolower(a[i][j]); } j++; } } } for (int i = 0; i < n; i++){ for (int j = 1; j < a[i].length(); j++){ if (a[i][j-1] == ' '){ rg[i] += a[i][j]; } } int d = 0; while (Find(rg, i) == true){ int dtmp = 0; for (int j = a[i].length()-2; j >= 0; j--){ if (a[i][j+1] == ' '){ if (d == dtmp){ string tmp1 = rg[i].substr(0,rg[i].length()-d*2); string tmp2 = rg[i].substr(rg[i].length()-d*2, d*2); rg[i] = tmp1 + a[i][j] + tmp2; d++; break; } else{ dtmp++; } } } } cout << rg[i] << '\n'; } delete[] a; delete[] rg; return 0; }