编程算法基础-2.7作业-通讯编码-格式检查

作业


通信编码


如果通信的物理设备仅仅能表示1和0两种状态。

1和0状态都不能持续太久,否则物理设备会出现问题。因而人们设计出一种变通的方法:

多个0后人为地补入一个1

多个1后人为地补入一个0

当然,在解码的时候,要对应处理。

以下我们用串来模拟这个算法。

如果有须要通信的串:

String s = "1010100100100001011110100010101010100001010101111";

连续的3个0,后须要插入一个1

连续的3个1,后须要输入一个0

10101001001000101011101010001101010....

想一想,加码处理后,须要把它再解码出来。

/*
通信编码
如果通信的物理设备仅仅能表示1和0两种状态。
1和0状态都不能持续太久,否则物理设备会出现问题。因而人们设计出一种变通的方法:
多个0后人为地补入一个1
多个1后人为地补入一个0
当然,在解码的时候,要对应处理。
以下我们用串来模拟这个算法。
如果有须要通信的串:
String s = "1010100100100001011110100010101010100001010101111";
连续的3个0,后须要插入一个1
连续的3个1,后须要输入一个0
10101001001000101011101010001101010....
想一想,加码处理后,须要把它再解码出来。
*/

package Homework;

public class ConnectionCode {
public static void main(String[] args) {
String s = "1010100100100001011110100010101010100001010101111";
System.out.println("原串:"+s);
s = s.replaceAll("[0]{3}", "0001");
s = s.replaceAll("[1]{3}", "1110");
System.out.println("加密:"+s);
s = s.replaceAll("[0]{3}[1]{1}", "000");
s = s.replaceAll("[1]{3}[0]{1}", "111");
System.out.println("解密:"+s);
}
}

原串:1010100100100001011110100010101010100001010101111
加密:101010010010001010111010100011010101010001010101011101
解密:1010100100100001011110100010101010100001010101111
上面的代码执行效率慢的一笔,我懒得写成复杂的那种了。

格式检查


这道题不知所云,求大神指导

xml 文件主要是由标签构成的。

类似:

.....

.dfsfs

kkkk

请编写一个程序,可以发现当中匹配不完整的标签。

比如:

sdfsfs

此时,标签的匹配就是不完整的。

就算查看了html代码也不知所云

<p style="text-indent: 2em;">
<span><span style="font-size: small;"> xml 文件主要是由标签构成的。</span>
</span>
</p>
<p style="text-indent: 2em;">相似:</p>
<p style="text-indent: 2em;">
<a>
<br>
<strong>.....</strong>
<br>
<strong>
<br>
.dfsfs
<br>
</strong>
<br>
<br>
kkkk
<br>
</a>
</p>
<p style="text-indent: 2em;">请编写一个程序,可以发现当中匹配不完整的标签。</p>
<p style="text-indent: 2em;">比如:</p>
<p style="text-indent: 2em;">
<a>
<br>
<strong>
sdfsfs
<br>
</strong>
</a>
</p>
<p style="text-indent: 2em;">
此时,<strong> 标签的匹配就是不完整的。</strong>
</p>

编程算法基础-2.7作业-通讯编码-格式检查

时间: 2024-10-21 06:19:52

编程算法基础-2.7作业-通讯编码-格式检查的相关文章

编程算法基础-一刀切法

1.5一刀切法 编程和编筐一样,处理边缘问题相同重要. 程序逻辑 開始 中间 结束 一刀切法上式 用空格或逗号分隔的串,提取为各个部分 abc ttt,kmd,uuu xyz 切分成每一部分. /* * "abc ttt,kmd,uuu xyz" 用逗号或者空格隔开字符串 分解为各个部分 */ package OneCut; public class SplitString { public static void main(String[] args) { // 一刀切(上式:事先补

编程算法基础3.3-测试驱动风格

cocos2d-x升级到3.0后变化不小,除了API的变化(主要是函数和类名称变化,以及使用了C++11的不少特性,function/bind, lamda, std::thread-),创建和编译工程也做了一些简化调整.本文主要讨论一下cocos2d-x3.0 在android平台开发的环境设置及工程创建编译流程. 1.   初始设置 除了2.x所需要的python,jdk, android sdk和ndk之外,还需要部署apache-ant. 1)      在path中设置好java环境变

编程算法基础-2.3进制转换

2.3进制转换 使用int存一个整数时.内存中是用二进制存储的,当要显示的时候.用十进制显示. 随意进制间的转换 n进制转m进制 String s = "2001201102" 3进制转换为5进制 先转换为2进制.再转换为5进制 /* 随意进制间的转换 n进制转m进制 String s = "2001201102" 3进制转换为5进制 先转换为10进制,再转换为5进制 */ package BinaryTrans; public class NToM { publi

编程算法基础-暴力破解法

1.1   暴力破解法 鸡兔同笼 50头,120脚,鸡兔分别几仅仅? /*鸡兔同笼 * 鸡兔同笼,头50,脚120 * 鸡兔几何? */ package ChickRabbit; public class ChickRabbit { public static void main(String[] args){ int chick; int rabbit; int HEAD=50; int FEET=120; for(chick=0;chick<=HEAD;chick++){ rabbit=HE

编程算法基础-3.2自底向上风格

3.2自底向上风格 自顶向下不是万能的 需求发生变化时,会很尴尬 变化是需求的本质特征 内部或外界的环境一旦发生小小的变化,就会造成很大的变动 个人---完全掌控----->简单的软件逻辑<-----完全计划的模式 小组协作---掌控变化---->庞大的软件规模---产生-->自适应变化<-----解决-----主流解决方案:面向对象 面向对象正是采用自底向上的设计风格 打印控制台表格2 实际开发中,使用混合风格,根据项目的要求而定 需求:不变,变 不变--->多种风格

编程算法基础-3.1自顶向下风格

第三讲 风格与模式 3.1自顶向下风格 复杂问题分解,直到小问题足够简单,能够掌控为止 是一种思考方式 把大的任务不断的分解为更小的子任务 还有一法宝:忽略,忽略细节 程序问题 制定框架--->逐步细化--->逐步精华--->分解为子问题 打印特定的形状 做一个二维数组的缓冲区 向缓冲区输出 缓冲区输出屏幕上 数组初始元素都是0 表格:横线.竖线. /* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $

Python 迭代器&amp;生成器,装饰器,递归,算法基础:二分查找、二维数组转换,正则表达式,作业:计算器开发

本节大纲 迭代器&生成器 装饰器  基本装饰器 多参数装饰器 递归 算法基础:二分查找.二维数组转换 正则表达式 常用模块学习 作业:计算器开发 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )等类似公式后,必须自己解析里面的(),+,-,*,/符号和公式,运算后得出结果,结果必须与真实的计算器所得出的结果一致 迭代器&

编程必备基础知识|计算机组成原理篇(06):计算机的字符与编码集

计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识.关于计算机基础的课程很多,内容繁杂,但无论是相关书籍还是大学课程,都有点脱离工作.特别地,计算机基础知识体系庞杂,想要从零学习或者复习都耗时耗力. 有鉴于此,本系列文章将带你更快的补足编程必备基础知识,涵盖计算机领域三大基础知识:计算机组成原理.操作系统.计算机网络,这些都是大学计算机课程里面最重要的内容.文章对这些内容做了提炼和

Linux工具开发---2编程实现对输入字符序列变换(编码/加密/散列)方式的智能判定

如何简单实现一个可以智能判定输入字符序列变换方式的小程序 本文由CSDN-蚍蜉撼青松 [主页:http://blog.csdn.net/howeverpf]原创,转载请注明出处! 问题描述: 在分析网络数据包或者研究安全问题时,经常会遇到变换后的字符序列.而能否准确识别密文的变换算法,对进一步的分析工作很关键.常用的变换算法包括但不限于:Base64.URL编码.HTML编码.MD5散列.DES加密.RSA加密等.要求: 1)在理解算法原理及密文特点的基础上,使用任意编程语言实现,当输入一段密文