Example
input
6
01
1111
01100
101
0000
01010
output
1
0
2
1
1
2
---------------------------------------------------------------------------------
ac,有优化空间:
#include <iostream>
#include <sstream>
#include <vector>
#include <cstring>
#include <string>
#include <map>
#include <unordered_map>
#include <math.h>
#include <algorithm>
#include <stdio.h>
#include <windows.h>
#include <string.h>
#include <deque>
#include <unordered_set>
#include <stack>
using namespace std;
class Operater {
public:
static unsigned int call3(char* str);
static int search010(char* str, unsigned int len);
};
int Operater::search010(char* str, unsigned int len)
{
if(!str) return -1;
char* start = strstr(str,"01");
int result = -1;
if(!start)
result = 1;
else
{
char *end = strstr(start,"10");
result = (end == NULL)? 1 : 0;
}
return result;
}
unsigned int Operater::call3(char* str)
{
if(!str) return -1;
unsigned int str_len = strlen(str);
int result = -1;
if(!strstr(str,"1"))
{
cout<<1<<endl;
}
else if(!strstr(str,"0"))
{
cout<<0<<endl;
}
else
{
if(!search010(str, str_len))
cout<<2<<endl;
else cout<<1<<endl;
}
return 0;
}
int main() {
int test_loop = 0;
cin >> test_loop;
while (test_loop) {
string str;
cin>>str;
char* cstr = (char*)str.data();
Operater::call3(cstr);
test_loop--;
// cout << "=>" << n << s << endl;
}
return 0;
}