|
| Каталог статей | |
PDA-версия страницы
Задача №12
Во введенном слове подсчитать количество различных пар букв. Например, в слове babacabacd 5 различных пар букв, ba – 3 пары, ac – 2 пары. Вариант 1:
#include <map> { char str[100]; cout<<RUS("Введите слово: "); cin.getline(str, 100); std::map<std::string, int> pairs; for(int i=0, len=strlen(str); i<len-1; i++) { std::string a=""; a += str[i]; a += str[i+1]; pairs[a]++; } cout<<RUS("Различных пар букв в слове: ")<<str<<"-"<<pairs.size() << std::endl; }
Вариант 2:
#include <iostream> #include <string> #include <locale> #include <vector> using namespace std; int main() { setlocale(LC_ALL, "Russian"); string st1; string st2; string st3; vector<string> st; vector<string> str; int i = 0; int j = 0; int amt = 0; int count = 0; st1 = "babacabacd"; int sz = st1.size(); for (int i = 0; i < sz - 1; i++) { st2 = st1[i]; st2 += st1[i + 1]; st.push_back(st2); amt++; st2 = ""; } for (int i = 0; i < amt - 1; i++) for (int j = i + 1; j < amt; j++) if (st[i] > st[j]) { st3 = st[i]; st[i] = st[j]; st[j] = st3; } for (int i = 0; i < amt - 1; i++) if (st[i] == st[i + 1]) st[i] = ""; for (int i = 0; i < amt; i++) if (st[i] != "") count++; cout << endl << "В слове \"" << st1 << "\" " << count << " различных пар букв." << endl; system("pause"); return 0; }
|
Категория: Строки | Добавил: Admin (09.07.2011)
|
Просмотров: 5934
| Рейтинг: 3.7/3 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
|
|
Помочь сайту! |
|
|
Партнёры сайта |
|
|
Закладки |
|
|
Поиск по сайту |
|
|
|
|