当前位置:   article > 正文

杭电1004题

杭电1004

  1. #include <iostream>
  2. #include <string>
  3. #include <list>
  4. using namespace std;
  5. int main() {
  6. list<string> slist;
  7. list<string> answer;
  8. string temp , result , sear;
  9. int inNum = 0, i, max , sum;
  10. list<string>::iterator pos;
  11. list<string>::iterator del;
  12. while (cin>>inNum) {
  13. result = "";
  14. max = 0;
  15. if (inNum == 0) {
  16. break;
  17. }
  18. for (i = 0 ; i < inNum ; i++) {
  19. cin >> temp;
  20. slist.push_back(temp);
  21. }
  22. while (slist.begin() != slist.end()) {
  23. sum = 0;
  24. pos = slist.begin();
  25. sear = *pos;
  26. for(pos = slist.begin(); pos != slist.end();) {
  27. if (sear == *pos) {
  28. ++sum;
  29. del = pos;
  30. ++pos;
  31. slist.erase(del);
  32. } else {
  33. ++pos;
  34. }
  35. }
  36. if (sum > max) {
  37. max = sum;
  38. result = sear;
  39. }
  40. }
  41. answer.push_back(result);
  42. }
  43. for (pos = answer.begin(); pos != answer.end(); ++pos ) {
  44. cout << *pos << endl;
  45. }
  46. return 0;
  47. }
这个题其实没什么,就是用了链表来取代固定数组节省内存,并且每次比较完之后,会删除比较过的字符串,这样当数据比较大的时候,可能会节省时间,但是当数据比较小的时候,可能并不会节省时间,因为链表删除也会费时间的。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/645589
推荐阅读
相关标签
  

闽ICP备14008679号