【题目】Problem B.寻找变化前01序列

Problem B.寻找变化前01序列

问题描述
给你一个01序列,HDLC协议处理的话,如果出现连续的5个1会补1个0。例如1111110,会变成11111010。
现在给你一个经过HDLC处理后的01序列,你需要找到HDLC处理之前的01序列。
例如给你11111010
你需要输出1111110

Input
输入正整数N,表示N例测试。接着输入N组数据,每组输入经过HDLC处理过的01序列(长度小于100)。

Output
对每组输入数据,输出HDLC处理前的01序列。

Sample Input
2
11111010
1111100

Sample Output
1111110
111110

解答:

import java.util.Scanner;
/*
Problem B.寻找变化前01序列
问题描述
给你一个01序列,HDLC协议处理的话,如果出现连续的5个1会补1个0。例如1111110,会变成11111010。
现在给你一个经过HDLC处理后的01序列,你需要找到HDLC处理之前的01序列。
例如给你11111010
你需要输出1111110
Input
输入正整数N,表示N例测试。接着输入N组数据,每组输入经过HDLC处理过的01序列(长度小于100)。
Output
对每组输入数据,输出HDLC处理前的01序列。
Sample Input
2
11111010
1111100
Sample Output
1111110
111110
 */
public class Test{
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		while(scanner.hasNext()) {
			int n = scanner.nextInt();
			for(int t = 0; t < n; t++) {
				int count = 0;
				String str = scanner.next();
				StringBuffer stb = new StringBuffer();
				for(int i = 0; i < str.length(); i++) {
					if(count == 5) {
						count = 0;
						continue;
					}
					if(str.charAt(i) - '0' == 1) count++;
					else count = 0;
					stb.append(str.charAt(i));
				}
				System.out.println(stb.toString());
			}
		}
	}
}

发布了233 篇原创文章 · 获赞 254 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_44485744/article/details/105030312
今日推荐