Решение задачи "Двуграмма" с Codeforces

Без пояснения   Просмотров: 22


Двуграмма — это упорядоченная пара (то есть строка длины два) прописных букв латинского алфавита. Например, «AZ», «AA», «ZA» — три различные двуграммы.

Вам задана строка s, состоящая из n прописных букв латинского алфавита. Ваша задача вывести любую двуграмму, которая содержится в этой строке как подстрока (то есть как два последовательных символа строки) максимальное количество раз. Например, для строки s = «BBAABBBA» ответ — это двуграмма BB, которая встречается в s три раза.

Заметьте, что вхождения двуграммы могут пересекаться друг с другом.

Код

#include<iostream>
#include<map>
using namespace std;
int main(void){
	int n,max = 0;
	cin>>n;
	string a,b,ans;
	cin>>a;
	map<string , int> m;
	for(int i=0;i<n-1;i++){
		b = a.substr(i,2);
		m[b]++;
		if(max < m[b]){
			ans = b;
			max = m[b];
		}
	}
	cout<<ans<<'\n';
	return 0;
}

         

 Администратор Photo Автор: Администратор


Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться