您的位置:首页 > 运维架构

topcoder decode

2015-07-20 20:18 417 查看
#include<vector>

#include<string>

#include<iostream>

using namespace std;

 vector<string> decode(string message)

 {

  vector<string> result;

  const int n=message.size();

  if(n==1)

  {

   if(message[0]>'2')

   {

    result.push_back("NONE");

    result.push_back("NONE");

    return result;

    }

    else

    {

    result.push_back(message);

    result.push_back(message);

    return result;

    }

   }

  string p(n,'0');

  for(int m=1;m>=0;--m)

  {

   p[0]=1-m+'0';

    p[1]=message[0]-p[0];

    if(p[1]<0||p[1]>1)
{

    result.push_back("NONE");
continue;
}

    else

    {

    p[1]+='0';
int i;

    for(i=1;i<n-1;++i)

    {

    p[i+1]=message[i]+'0'-p[i]-p[i-1];

    if(p[i+1]<0||p[i+1]>1)

    {

    result.push_back("NONE");

    break;

    }
p[i+1]+='0';

    }
if(i==n-1)
result.push_back(p);

    }

   }

   return result;

  }

 int main()

 {
string message("3");
vector<string> result=decode(message);
for(auto res:result)
cout<<res<<" ";
cout<<endl;
return 0;

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