您的位置:首页 > 其它

百度实习在线笔试题【逆序问题】

2015-05-04 17:42 246 查看
自己写的代码,未经测试

////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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: