作业
通信编码
假设通信的物理设备只能表示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>