天天看点

TopCoder SRM 144 DIV1 BinaryCode

题意:

一个01串S1,每位与邻数相加,得到新的串S2.

现在给你S2,求对应S1的一个字符分别为‘0’和‘1‘时S1是否存在

题解:

模拟,直接做就可以了

import java.util.*;
public class BinaryCode
{
	String getStr(String str,int start)
	{
		char []s=str.toCharArray();
		StringBuffer buf=new StringBuffer();
		buf.append((char)(start+'0'));
		int pre=start;
		start=s[0]-'0'-start;
		if(start!=0&&start!=1)
			return "NONE";
		for(int i=1;i<s.length;++i)
		{
			buf.append((char)(start+'0'));
			s[i]-=(start+pre);
			pre=start;
			start=s[i]-'0';
			if(start!=0&&start!=1)
				return "NONE";
		}
		if(start!=0)
			return "NONE";
		return buf.toString();
	}
	public String [] decode(String s)
	{
		String []strs=new String[2];
		strs[0]=getStr(s,0);
		strs[1]=getStr(s,1);
		return strs;
	}

}
           

继续阅读