作业
通信编码
如果通信的物理设备仅仅能表示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作业-通讯编码-格式检查