字符串处理之HDLC串处理
2017-02-07 14:46
162 查看
寻找变化前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
思路:
北邮的一个复试上机题,实质上就是去除字符串中的某个特定字符,大体思路是统计1出现的次数,当1连续出现5次时,下一个字符就不再输出,并将统计变量cnt置0。在统计过程中,中间一旦出现不是1的字符,统计变量cnt也置为0。
AC代码
问题描述
给你一个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
思路:
北邮的一个复试上机题,实质上就是去除字符串中的某个特定字符,大体思路是统计1出现的次数,当1连续出现5次时,下一个字符就不再输出,并将统计变量cnt置0。在统计过程中,中间一旦出现不是1的字符,统计变量cnt也置为0。
AC代码
#include<stdio.h> #include<stdlib.h> #include<string.h> #define maxn 105 using namespace std; char str[maxn]; int main() { int m;//测试样例的数量 scanf("%d",&m); while(m--){ scanf("%s",str); int cnt = 0; for(int i=0;i<strlen(str);i++) { if(str[i] == '1') { printf("%c",str[i]); cnt++; if(cnt==5) { i++; cnt = 0; } } else { printf("%c",str[i]); cnt=0; } } printf("\n"); } return 0; }
相关文章推荐
- 改进 ASP 应用程序中的字符串处理性能
- 适合于Unix与Win32下的字符串处理类,可以以此为基类进行扩展
- VB中字符串处理函数反汇编对比
- 几个字符串处理方法:
- ASP中一个字符串处理类加强版
- 改进 ASP 的字符串处理性能
- clob相关的咚咚以及字符串处理
- 改进 ASP 应用程序中的字符串处理性能[转帖]
- SQL字符串日期处理.doc
- 化解字符串不能超过8000的方法及交叉表的处理
- 字段里字符串的处理问题
- 改进 ASP 应用程序中的字符串处理性能
- 几个非常有用的字符串处理函数!
- javascript字符串处理
- Strsafe.h安全的C语言字符串处理函数
- C#中处理字符串和数字
- ASP中一个字符串处理类(加强)(VBScript)
- 项目工作小结之字符串处理的几个方法
- JAVA-字符串处理中的重点
- 字符串的折行处理