Untitled
unknown
c_cpp
a year ago
1.9 kB
5
Indexable
#include <iostream> #include <string> #include <vector> struct map { std::vector<char> key; std::vector<int> value; }; void print(map letters) { for (int i = 0; i < letters.key.size(); i++) { std::cout << letters.key[i] << " : " << letters.value[i] << "\n"; } } void sortMapToMax(map &letters) { size_t size = letters.key.size(); for (size_t i = 0; i < size; ++i) { for (size_t j = 0; j < size - 1; ++j) { if (letters.value[j] > letters.value[j + 1]) { int bufferValue = letters.value[j]; char bufferKey = letters.key[j]; letters.value[j] = letters.value[j + 1]; letters.value[j + 1] = bufferValue; letters.key[j] = letters.key[j + 1]; letters.key[j + 1] = bufferKey; } } } } void sortMapToMin(map& letters) { size_t size = letters.key.size(); for (size_t i = 0; i < size; ++i) { for (size_t j = 0; j < size - 1; ++j) { if (letters.value[j] < letters.value[j + 1]) { int bufferValue = letters.value[j]; char bufferKey = letters.key[j]; letters.value[j] = letters.value[j + 1]; letters.value[j + 1] = bufferValue; letters.key[j] = letters.key[j + 1]; letters.key[j + 1] = bufferKey; } } } } void count(std::string word, map &letters) { for (char i : word) { if (std::find(letters.key.begin(), letters.key.end(), i) == letters.key.end()) { letters.key.push_back(i); letters.value.push_back(std::count(word.begin(), word.end(), i)); } } } int main() { std::string word; std::cin >> word; map letters; count(word, letters); sortMapToMax(letters); std::cout << "vector after sort from min to max" << "\n"; print(letters); std::cout << "--------------------------------------" << '\n'; std::cout << "vector after sort from max to min" << "\n"; sortMapToMin(letters); print(letters); };
Editor is loading...
Leave a Comment