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 件のコメント :
コメントを投稿