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

时间:2015-05-04 19:56:39   收藏:0   阅读:104

自己写的代码,未经测试

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

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!