class FunnyFence { public: int getLength(string s) { s += s[ (int)s.size() - 1 ]; int mx = 0, cnt = 0; for(int i=0; i<s.size(); ++i){ if( s[i] != s[i+1] )++cnt; else{ mx = max(mx, cnt); cnt = 0; } } return mx + 1; } };500
けっこう時間がかかった。
string itoa(int n) { char s[100]; sprintf(s, "%d", n); return string(s); } class IQTest { public: string nextNumber(vector <int> prev) { const string MSG0 = "AMBIGUITY"; const string MSG1 = "BUG"; if( prev.size() == 1 )return MSG0; if( prev.size() == 2 ) { if( prev[0] == prev[1] )return itoa( prev[0] ); else return MSG0; } if( prev[0] == prev[1] ){ if( count(prev.begin(), prev.end(), prev[0]) == prev.size() )return itoa( prev[0] ); else return MSG1; } if( (prev[2] - prev[1]) % (prev[1] - prev[0]) ){ return MSG1; } int a = (prev[2] - prev[1]) / (prev[1] - prev[0]); int b = prev[1] - prev[0] * a; for(int i=0; i+1<prev.size(); ++i){ if( prev[i] * a + b != prev[i+1] )return MSG1; } return itoa( prev.back() * a + b ); } };900
問題を理解するには英語力が足りないみたい。
0 件のコメント :
コメントを投稿