字符串解析实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息内容安全实验报告
二零二零年
实验一:字符串解析实验
要求:
编写一个windows窗口程序,
输入:一个串x;
输出:点击按钮后输出
1. x的所有前缀,x所有前缀的个数;
2. x的所有后缀,x所有后缀的个数;
3. x除前缀和后缀之外的所有子串,x除前缀和后缀之外的所有子串的个数。
编程语言不限。
实验结果:
实验源代码:
import tkinter as tk
from tkinter import *
root=()
root.title('实验一')
root.geometry("300x200+100+50") def b1():
str1=entry1.get()
s1=list(str1)
x=len(str1)
str2=[]
for i in range(x+1):
str3="".join(s1[0:i])
str4=str3
str2.append(str3)
st1=str2
st1=list(map(str,st1))
a=str(len(str2))
st11=str("前缀个数为:"+a)
text1.insert(tk.INSERT,'\n')
p1="1、"
text1.insert(tk.INSERT,p1)
text1.insert(tk.INSERT,'\n')
text1.insert(tk.INSERT,st11)
text1.insert(tk.INSERT,'\n')
text1.insert(tk.INSERT,st1)
str5=str1[::-1]
s12=list(str5)
x2=len(str5)
str22=[]
for i in range(x2+1):
str32="".join(s12[0:i])
str42=str32
str32=str32[::-1]
str22.append(str32)
st2=str22
st2=list(map(str,st2))
a=str(len(str22))
st22=str("后缀个数为:"+a)
text1.insert(tk.INSERT,'\n')
p2="2、"
text1.insert(tk.INSERT,p2)
text1.insert(tk.INSERT,'\n')
text1.insert(tk.INSERT,st22)
text1.insert(tk.INSERT,'\n')
text1.insert(tk.INSERT,st2)
s1=list(str1)
x=len(str1)
str2=[]
for i in range(x+1):
for j in range(x+1):
str3="".join(s1[i:j])
str2.append(str3)
str2=list(set(str2))
st3=str2
for i in range(len(st1)):
for j in st1:
if j in st3:
st3.remove(j)
for i in range(len(st2)):
for j in st2:
if j in st3:
st3.remove(j)
a=str(len(st3))
st33=str("除前缀后缀子串个数为:"+a)
text1.insert(tk.INSERT,'\n')
p3="3、"
text1.insert(tk.INSERT,p3)
text1.insert(tk.INSERT,'\n')
text1.insert(tk.INSERT,st33)
text1.insert(tk.INSERT,'\n')
text1.insert(tk.INSERT,st3)
label1=bel(root,text='串x:')
label1.grid(row=2,column=1)
entry1=tk.Entry(root)
entry1.grid(row=2,column=3)
t1=""
text1=tk.Text(root,width=32,height=30)
text1.grid(row=4,column=3)
text1.insert(tk.INSERT,t1)
button1=tk.Button(root,text="解析",command=b1)
button1.grid(row=2,column=8)
root.mainloop()
总结:通过此次实验,对字符串解析有了跟深层次的理解。