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. 关于ucore实验一的资料查找

    任务:阅读实验一makefile 搞清楚ucore.img是如何构建的 $@  $<  $^  这三个变量分别是什么意思 https://blog.csdn.net/YEYUANGEN/arti ...

  2. Dos简单命令及CMD打开方式

    打开CMD方式 开始+系统+命令提示符 WIN健+R 输入cmd打开控制台(推荐使用) 在任意文件夹下面,按住shift+鼠标右击,进入powershell 资源管理器的地址栏路径最前面+cmd+空格 ...

  3. 如何优雅的阅读 GitHub 上开源 js 框架和库的源码

    如何优雅的阅读 GitHub 上开源 js 框架和库的源码 step 先总后分,即先了解一下啊框架的大体架构,又一个全局的认识,在选择某些和感兴趣的部分,仔细阅读,各个击破: 带着问题阅读,用到了什么 ...

  4. js 快速排序 All In One

    js 快速排序 All In One 快速排序 / Quick Sort "use strict"; /** * * @author xgqfrms * @license MIT ...

  5. Upcoming Browser Behavior Changes & Chrome & SameSite

    Upcoming Browser Behavior Changes & Chrome & SameSite Chrome 80 https://auth0.com/blog/brows ...

  6. gradient text & gradient background

    gradient text & gradient background -webkit-text-fill-color & -webkit-gradient https://wesbo ...

  7. react-app 编写测试

    jest Enzyme 文档 为什么要写测试 单元测试(unit testing)指的是以软件的单元(unit)为单位,对软件进行测试.单元可以是一个函数,也可以是一个模块或组件.它的基本特征就是,只 ...

  8. ipv4ipv6 地址字符串表示最大长度

    1 for IPV4 #define INET_ADDRSTRLEN 16 111.112.113.114 32位IPV4地址,使用10进制+句点表示时,所占用的char数组的长度为16,其中包括最后 ...

  9. SSAS表格模型

    Analysis Services 是在决策支持和业务分析中使用的分析数据引擎 (Vertipaq) . 它为商业智能提供企业级语义数据模型功能 (BI) .数据分析和报告应用程序,如 Power B ...

  10. ProBuilder快速原型开发技术 ---不规则模型与材质

    ProBuilder开发模型的强大之处,还在于可以按照要求精确定制不规则模型.克隆镜像模型.给模型着色以及添加材质等,下面笔者就这几方面进行讲解. 一:定制不规则模型 PB有一个专门定制不规则模型的功 ...