天天看點

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

}
           

繼續閱讀