problemscpp
A collection of my answers to algorithm problems in c++.
函数
pat::b::b1043 命名空间参考

1043 输出PATest 更多...

函数

int main (istream &cin, ostream &cout)
 
 TEST (b1043, case1)
 

详细描述

1043 输出PATest

函数说明

◆ main()

int pat::b::b1043::main ( istream &  cin,
ostream &  cout 
)

在文件 pat.cpp1373 行定义.

1373 {
1374 unordered_map<char, unsigned> um;
1375 const char patest[6] = {'P', 'A', 'T', 'e', 's', 't'};
1376 um['P'] = 0;
1377 um['A'] = 0;
1378 um['T'] = 0;
1379 um['e'] = 0;
1380 um['s'] = 0;
1381 um['t'] = 0;
1382 string str;
1383 cin >> str;
1384 for(char ch: str) {
1385 if(um.contains(ch)) {
1386 um[ch]++;
1387 }
1388 }
1389 unsigned minimum = 10000;
1390 for(const auto &[ch, count]: um) {
1391 minimum = min(minimum, count);
1392 }
1393 for(auto &[ch, count]: um) {
1394 count -= minimum;
1395 }
1396 for(unsigned i = 0; i < minimum; i++) {
1397 cout << "PATest";
1398 }
1399 bool flag = true;
1400 while(flag) {
1401 flag = false;
1402 for(unsigned i = 0; i < 6; i++) {
1403 if(um[patest[i]] > 0) {
1404 cout << patest[i];
1405 um[patest[i]]--;
1406 flag = true;
1407 }
1408 }
1409 }
1410 return 0;
1411 }

被这些函数引用 TEST().

◆ TEST()

pat::b::b1043::TEST ( b1043  ,
case1   
)

在文件 pat_test.cpp655 行定义.

655 {
656 istringstream in("redlesPayBestPATTopTeePHPereatitAPPT");
657 auto out = ostringstream();
658 main(in, out);
659 const auto ans = out.str();
660 ASSERT_EQ("PATestPATestPTetPTePePee", out.str());
661 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().