
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;
}

该代码实现了一个名为Operater的类,其中包含一个静态方法call3,该方法接收一个字符串输入并检查其是否包含特定子串'01'和'10'。如果字符串中只包含'0'或只包含'1',则输出1;如果既不包含'01'也不包含'10',则输出2;否则输出1。在main函数中,对多个测试用例进行了处理。
408

被折叠的 条评论
为什么被折叠?



