python-顺序串基本操作的实现
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-顺序串基本操作的实现的更多相关文章
- YTU 3007: 顺序串的基本运算
3007: 顺序串的基本运算 时间限制: 1 Sec 内存限制: 128 MB 提交: 1 解决: 1 题目描述 编写一个程序,实现顺序串的各种基本运算,主函数已给出,请补充每一种方法. 1.建立 ...
- python顺序执行多个py文件
python顺序执行多个py文件 假如我要执行code目录下的python程序,假设该目录下有1.py,2.py,3.py,4.py四个文件,但是我想执行1.py,2.py,4.py,则可在该目录下创 ...
- php模拟顺序栈基本操作
php模拟顺序栈基本操作 一.总结 写函数什么永远记住边界情况:比如 echo "栈已满!<br/>" ; 栈已空这种,那就能多考虑几种情况,代码就很正宗了 1.对象 ...
- css属性编写顺序+mysql基本操作+html细节(个人笔记)
css属性编写顺序: 影响文档流的属性(比如:display, position, float, clear, visibility, table-layout等) 自身盒模型的属性(比如:width ...
- python简介与基本操作
一.python的历史 python的创始人Guido van Rossum,现就职于Dropbox公司. 1989年12月份诞生了python1.0 2000年10月16日发布了python2.0 ...
- Python初识文本基本操作
初识文本的基本操作 怎么在文件里面写内容和都内容 文件操作过程 1,找到文件 文件路径 2,打开文件 file_obj=file(文件路径,模式) 3,文件操作,读写文件 file_obj.read( ...
- #7 Python顺序、条件、循环语句
前言 上一节讲解了Python的数据类型和运算,本节将继续深入,涉及Python的语句结构,相当于Python的语法,是以后编写程序的重要基础! 一.顺序语句 顺序语句很好理解,就是按程序的顺序逻辑编 ...
- NodeJs使用async让代码按顺序串行执行
描述 由于nodejs中的函数调用都是异步执行的,而笔者在工程开发中函数A需要四五个参数,而这四五个参数值都是通过函数调用获得,因此按顺序写代码时,执行到函数A时,往往函数A需要的参数值因为参数的异步 ...
- Python 字串处理
#!/usr/bin/python #-*- coding:utf-8 –*- import os import sys import re import shutil import xlrd imp ...
- python——numpy_1图像基本操作
1.图像的数组表示: from PIL import Image from pylab import * from numpy import * im = array(Image.open('E:\P ...
随机推荐
- Leetcode(885)- 救生艇
第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit. 返回载到每一个人所需的最小船数.(保证每个人都 ...
- 左神算法第一节课:复杂度、排序(冒泡、选择、插入、归并)、小和问题和逆序对问题、对数器和递归(Master公式)
第一节课 复杂度 排序(冒泡.选择.插入.归并) 小和问题和逆序对问题 对数器 递归 1. 复杂度 认识时间复杂度常数时间的操作:一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数 ...
- SSL 数据加密原理简述
最近调试mqtt协议,为了保证数据安全性和将来客户端的对云的兼容性选择了openssl作为安全加密中间层,而没有使用私有的加密方式.所以花了点时间学习了一下ssl 加密流程整理如下: 因为正常正式使用 ...
- C++模板沉思录
0 论抽象--前言 故事要从一个看起来非常简单的功能开始: 请计算两个数的和. 如果你对Python很熟悉,你一定会觉得:"哇!这太简单了!",然后写出以下代码: def Plus ...
- ES6 Generator vs ES6 async/await
ES6 Generator vs ES6 async/await next yield promise refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允 ...
- 为什么 Koa 的官方文档那么丑呀?
为什么 Koa 的官方文档那么丑呀? koa.js https://koajs.com/ 代码高亮 # $ nvm install 7, node.js v7.x.x+ $ yarn add koa ...
- NGK公链:去中心化交易+挖矿生态体系共舞
NGK生态公链是一个安全.透明.专业的去中心化商业应用平台.作为一条具有技术信任甚至是公众信任的公链,NGK以区块链技术为支撑,利用区块链透明.公正.公开.数据不可篡改.分布式存储.可追溯等技术优势, ...
- 蓝桥杯——试题 算法训练 Yaroslav and Algorithm
试题 算法训练 Yaroslav and Algorithm 资源限制 时间限制:100ms 内存限制:128.0MB 问题描述 (这道题的数据和SPJ已完工,尽情来虐吧!) Yaroslav喜欢算法 ...
- webpack4.X源码解析之懒加载
本文针对Webpack懒加载构建和加载的原理,对构建后的源码进行分析. 一.准备工作 首先,init之后创建一个简单的webpack基本的配置,在src目录下创建两个js文件(一个主入口文件和一个非主 ...
- PHP中间件
定义 首先什么是php的中间件? 根据zend-framework中的定义: 所谓中间件是指提供在请求和响应之间的,能够截获请求,并在其基础上进行逻辑处理,与此同时能够完成请求的响应或传递到下一个中间 ...