1 #***********************************************************************    **
2 #> File Name: seqstring.py
3 #> Author: 邹庭荣
4 #> Mail: 1198875194@qq.com
5 #> Created Time: 2020年11月03日 星期二 18时29分10秒
6 #********************************************************************** ***/
7 """
8 串的基本概念
9 字符串也叫串,室友字符组成的有限序列,是一种常用的废树脂数据。串的逻辑结
构是线性表,其每个数据元素都是一个字符。串的操作特点与线性表,主要是对子
串进行操作,通常采用顺序结构存储。
10 串的比较规则和字符串的比较规则相似
11 从第一个字符开始比较,ASCII码越大字符串则越大,第一个相同则比较第二个,> 以此后推
12 当两个字符串的长度不等时,各位都相等,则长度较长的更大
13 """
14 class seqstring(object):
15 def __init__(self,obj):
16 if obj is None:
17 self.strvalue = []
18 self.curlen = 0
19 else:
20 self.curlen = len(obj)
21 self.strvalue = [None] * self.curlen
22 for i in range(self.curlen):
23 self.strvalue[i] = obj[i]
24 def clear(self):
25 self.curlen = 0
26 def isEmptr(self):
27 return self.curlen == 0
28 def length(self):
29 return self.curlen
30 def getitem(self,i):
31 if i < 0 or i > self.curlen:
32 raise Exception("列表越界")
33 else:
34 return self.strvalue[i]
35 def addlength(self,lengthnumber):
36 """将串的长度扩充为lengthnumber"""
37 temp = self.strvalue
38 self.strvalue = [None] * lengthnumber
39 for i in range(self.curlen):
40 self.strvalue[i] = temp[i]
41 self.curlen = lengthnumber
42 def sunstr(self,begin,end):
43 """返回从begin开始到end - 1的子串"""
44 return self.strvalue[begin:end]
45 def insert(self,i ,strinsert):
46 """在i位置之后添加str"""
47 if i < 0 or i > self.curlen:
48 raise Exception("插入位置非法")
49 templist1 = self.strvalue[:i]
50 templist2 = self.strvalue[i:]
51 strvalue1 = [None] * len(strinsert)
52 length = self.curlen + len(strinsert)
53
54 temp = self.strvalue
55
56 self.strvalue = self.addlength(length)
57 for x in range(len(strinsert)):
58 strvalue1[x] = strinsert[x]
59 self.strvalue = templist1 + strvalue1 + templist2
60 self.curlen = length
61 def delete(self,begin,end):
62 if begin < 0 or begin > self.curlen or end > self.curlen or end < 0:
63 raise Exception("删除位置非法")
64 else:
65 templist1 = self.strvalue[:begin]
66 templist2 = self.strvalue[end:]
67 self.curlen = self.curlen - end + begin
68 self.strvalue = templist1 + templist2
69 def comprare(self,strcomprare):
70 n = self.curlen if self.curlen > len(strcomprare) else len(strco mprare)
71 for i in range(n):
72 if self.strvalue[i] > strcomprare[i]:
73 return ("大于")
74 elif self.strvalue[i] < strcomprare[i]:
75 return ("小于")
76 if self.curlen < len(strcomprare):
77 return ("小于")
78 elif self.curlen > len(strcomprare):
79 return ("大于")
80 def display(self):
81 for i in self.strvalue:
82 print(i,end = " ")
83 print()
84 if __name__ == "__main__":
85 seqstring1 = seqstring("123456")
86 seqstring1.display()
87 print(seqstring1.length())
88 print(seqstring1.getitem(1))
89 print(seqstring1.sunstr(1,3))
90 seqstring1.insert(3,"000")
91 print(seqstring1.length())
92 seqstring1.display()
93 seqstring1.delete(2,6)
94 seqstring1.display()
95 print(seqstring1.length())
96 print(seqstring1.comprare('12345'))

运行结果

1 2 3 4 5 6  
6

2

['2', '3']

9

1 2 3 0 0 0 4 5 6  
1 2 4 5 6  
5

大于

python-顺序串基本操作的实现的更多相关文章

  1. YTU 3007: 顺序串的基本运算

    3007: 顺序串的基本运算 时间限制: 1 Sec  内存限制: 128 MB 提交: 1  解决: 1 题目描述 编写一个程序,实现顺序串的各种基本运算,主函数已给出,请补充每一种方法. 1.建立 ...

  2. python顺序执行多个py文件

    python顺序执行多个py文件 假如我要执行code目录下的python程序,假设该目录下有1.py,2.py,3.py,4.py四个文件,但是我想执行1.py,2.py,4.py,则可在该目录下创 ...

  3. php模拟顺序栈基本操作

    php模拟顺序栈基本操作 一.总结 写函数什么永远记住边界情况:比如 echo "栈已满!<br/>" ;  栈已空这种,那就能多考虑几种情况,代码就很正宗了 1.对象 ...

  4. css属性编写顺序+mysql基本操作+html细节(个人笔记)

    css属性编写顺序: 影响文档流的属性(比如:display, position, float, clear, visibility, table-layout等) 自身盒模型的属性(比如:width ...

  5. python简介与基本操作

    一.python的历史 python的创始人Guido van Rossum,现就职于Dropbox公司. 1989年12月份诞生了python1.0 2000年10月16日发布了python2.0 ...

  6. Python初识文本基本操作

    初识文本的基本操作 怎么在文件里面写内容和都内容 文件操作过程 1,找到文件 文件路径 2,打开文件 file_obj=file(文件路径,模式) 3,文件操作,读写文件 file_obj.read( ...

  7. #7 Python顺序、条件、循环语句

    前言 上一节讲解了Python的数据类型和运算,本节将继续深入,涉及Python的语句结构,相当于Python的语法,是以后编写程序的重要基础! 一.顺序语句 顺序语句很好理解,就是按程序的顺序逻辑编 ...

  8. NodeJs使用async让代码按顺序串行执行

    描述 由于nodejs中的函数调用都是异步执行的,而笔者在工程开发中函数A需要四五个参数,而这四五个参数值都是通过函数调用获得,因此按顺序写代码时,执行到函数A时,往往函数A需要的参数值因为参数的异步 ...

  9. Python 字串处理

    #!/usr/bin/python #-*- coding:utf-8 –*- import os import sys import re import shutil import xlrd imp ...

  10. python——numpy_1图像基本操作

    1.图像的数组表示: from PIL import Image from pylab import * from numpy import * im = array(Image.open('E:\P ...

随机推荐

  1. Next.js 10

    Next.js 10 October 27th 2020 https://nextjs.org/blog/next-10 refs xgqfrms 2012-2020 www.cnblogs.com ...

  2. modal 弹框遮罩层,滚动穿透bug 解决方案

    modal 弹框遮罩层,滚动穿透bug 解决方案 parent component 动态设置 lock css const computedClassName = classNames( 'activ ...

  3. VSCode & useful Extensions

    VSCode & useful Extensions Code Spell Checker bug user dictionary https://www.cnblogs.com/xgqfrm ...

  4. wireshark 获取指定进程id的数据

    >netstat -aon | findstr 11380 TCP 191.127.1.7:57936 29.225.107.216:3734 ESTABLISHED 11380 过滤器: tc ...

  5. jetty的jndi

    jetty的jndi和tomcat的用法 tomcat的jndi是内置的,在web.xml文件里直接默认支持的,所有web项目可以直接使用 <resources> <!-- < ...

  6. css优先级和权重

    1. 权重概念: 权重,是一个相对的概念,是针对某一指标而言.某一指标的权重是指该指标在整体评价中的相对重要程度. 权重系数,是表示某一指标项在指标项系统中的重要程度,它表示在其它指标项不变的情况下, ...

  7. 面试必知:String、StringBuilder、StringBuffer的区别

    你知道String.StringBuilder.Stringbuffer的区别吗?当你创建字符串的时候,有考虑过该使用哪个吗? 别急,这篇文章带你解决这些问题. 可变性 首先,String是字符串,我 ...

  8. 关于MVCC,我之前写错了,这次我改好了!

    关于MVCC的原理,在<我想进大厂>之mysql夺命连环13问写过一次,但是当时写的其实并不准确,这个理解可以应付面试,帮助快速理解,但是他的真正实现原理我想再次拿出来说一说. 简单理解版 ...

  9. The last packet successfully received from the server was 49,061,696 millise

    解决连接:https://blog.csdn.net/pandajava/article/details/41946251

  10. LayUI之数据表格扩展

    1.点击一行 选中 以下代码需要在表格渲染完成时加载. 1)当单击表格行时,把单选按钮设为选中状态 //当单击表格行时,把单选按钮设为选中状态 $(document).on("click&q ...