自己写的代码,未经测试
////baidu实习岗在线测评 ////一组01的二进制字符串,要求不为逆序,需要交换几次位置。 // #include <iostream> #include <vector> using namespace std; typedef struct{ unsigned int num; vector<char*> data; }SInput; void pInputData(SInput &input) { int i; cin>>input.num; //忽略了后面的换行符 char n; cin.get(n); //读取下一个输入字符,即使该字符是空格、制表符或者换行符 for(i=0;i<input.num;i++) { char* d=(char*)malloc(1000000*sizeof(char)); cin.getline(d,1000000); //读取整行,读取并忽略换行符 input.data.push_back(d); } } void release(SInput input) { for(int i=0;i<input.num;i++) { free(input.data[i]); } } int fuc(char* data_queue) { int i=0; while(data_queue[i++]!=‘0‘) //注意char型的0的表示 { if(data_queue[i]==‘\0‘) //全部都是1 return 0; } //找到了第一个0 while(data_queue[i++]!=‘1‘) { if(data_queue[i]==‘\0‘) //0之后没有1 return 1; } return 0; //在找到0之后也找到了1 } void main() { SInput input; pInputData(input); int result; for(int i=0;i<input.num;i++) { result=fuc(input.data[i]); cout<<result<<endl; } release(input); }
时间: 2024-10-07 22:30:06