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;
}
#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;
}
相关文章推荐
- 可伸缩Web架构与分布式系统
- linux中Ctrl+D,Ctrl+Z,Ctrl+C
- Windows系统提供什么样的接口,Unix、Linux系统的用户接口是什么?
- PopupWindow的使用
- erlang进程监控的实现原理
- Linux基础整理-软件的安装与卸载
- 如何在centos下装dropbox(其他的软件也类似)
- linux自学笔记:00_开山篇
- Linux下Gcc生成和使用静态库和动态库详解
- 利用opencv从本地获取图像,并进行图像缩放,彩色图转灰度图
- hadoop2.6安装配置
- 【linux】RocketMQ:一个纯java的开源消息中间件--开发测试环境搭建
- 记linux终端下怎样退出>
- centos忘记开机密码
- linux使用badblocks命令扫描硬盘排除故障(待验证)
- 使用myeclipse启动tomcat时出现这种错误“Could not publish to the server. java.lang.NullPointerException”
- docker swarm集群TLS配置
- Ubuntu 搭建LAMP开发环境
- ssh远程调用之shell脚本远程调用应用程序
- 《学习OpenCV》第四章课后题5-a