HDU 2617 Happy 2009(字符串)
Happy 2009
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2394 Accepted Submission(s): 802
Each test case included one string. There are made up of ‘a’-‘z’ or blank. The length of string will not large than 10000.
hopppayppy happy happ acm y hahappyppy
2 1 2
很简单的字符串,主要是简单练下手,1A。
#include <iostream> #include <string> #include <map> using namespace std; map<string,int> smp; int ans; void init(){ smp["h"] = 0; smp["ha"] = 0; smp["hap"] = 0; smp["happ"] = 0; ans = 0; } inline bool yes(char c){ if (c == 'a' || c == 'h' || c == 'p' || c == 'y')return true; return false; } inline void add(char c){ if (c == 'h'){ ++smp["h"]; } else if (c == 'a' && smp["h"]>0){ --smp["h"]; ++smp["ha"]; } else if (c == 'p'){ if (smp["hap"] > 0){ --smp["hap"]; ++smp["happ"]; } else if (smp["ha"] > 0){ --smp["ha"]; ++smp["hap"]; } } else if (c == 'y' && smp["happ"] > 0){ ++ans; --smp["happ"]; } } void solve(string str){ int len = str.length(); for (int i = 0; i < len; ++i){ if (yes(str[i])){ add(str[i]); } } } int main(){ string str; while (getline(cin, str)){ init(); solve(str); cout << ans << endl; } return 0; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。