Stack Overflow на русском Asked on February 23, 2021
Пожалуйста, помогите переписать код с Python на C++
Программа должна выводить самое частое слово в тесте
на вход даётся число строк, затем вводятся сами строки:
txt={}
m=0
for _ in range(int(input())):
for word in input().split():
if word in txt:
txt[word]+=1
else:
txt[word]=1
if txt[word]>m:
m=txt[word]
for k,val in sorted(txt.items()):
if val==m:
print(k)
тест:
3
vqcg vqcg vqcg vqcg vqcg vqcg vqcg
vqcg vqcg
vqcg
Пытался сам сделать через map
, но ничего не получается
К сожалению, это максимум что у меня получилось:
#include<bits/stdc++.h>
#include <string>
#include <map>
using namespace std;
main()
{
int n, k, i;
string s, a[100];
cin >> n;
getline(cin, s);
for (i = 0; i < n; i++) getline(cin, a[i]);
istringstream ist(s);
map<string, int> m;
for(string word; ist >> word; ++m[word]);
cout << m.begin()->first << endl;
}
Да составте частоту включений через std::map и найдите в ней максимальныйое значение приавязанное к ключу
Пример логики -
std::map<std::string, int> m;
// TODO : add dump line from stdin
std::string s{"test line test line test 1"};
std::istringstream ist(s);
for(std::string word; ist >> word; ++m[word]);
auto f{[] (const std::pair<std::string, int>& p1, const std::pair<std::string, int>& p2) {return p1.second < p2.second;}};
auto p_i = std::max_element(std::begin(m), std::end(m), f);
std::cout << "max frenq : " << p_i->first << std::endl;
Answered by Maggot on February 23, 2021
Сравните этот код со своим и попробуйте разобраться, в чем у вас проблемы, самостоятельно (я постарался минимально изменять ваш код и ваш подход):
#include <iostream>
#include <string>
#include <map>
#include <sstream>
using namespace std;
int main()
{
map<string, int> m;
int n;
string s;
cin >> n;
for (int i = 0; i < n; i++) {
getline(cin, s);
istringstream ist(s);
for(string word; ist >> word; ++m[word]);
}
cout << max_element(m.begin(),m.end(),
[](auto a, auto b) { return a.second < b.second; })->first
<< endl;
}
Answered by Harry on February 23, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP