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 ...
随机推荐
- 牛客多校第六场G Is Today Friday?(吉姆拉尔森/蔡勒公式 + 思维)题解
题意: 给你\(A-J\)的字母组成的日期,形式为\(yyyy/mm/dd\).现给你\(n\)个这样的串\((n<=1e5)\),问你把字母映射成数字,并且使得所有日期合法且为星期五的最小字典 ...
- HDU 2825 Wireless Password(AC自动机 + 状压DP)题解
题意:m个密码串,问你长度为n的至少含有k个不同密码串的密码有几个 思路:状压一下,在build的时候处理fail的时候要用 | 把所有的后缀都加上. 代码: #include<cmath> ...
- W3C & 弹幕
W3C & 弹幕 弹幕用例规范 Draft Community Group Report 21 August 2020 refs https://w3c.github.io/danmaku/u ...
- Flutter in DartPad
Flutter in DartPad Gist Sharing https://github.com/dart-lang/dart-pad/wiki/Sharing-Guide https://gis ...
- WebRTC 信令服务器
WebRTC 信令服务器 node.js & V8 libuv socket.io https://socket.io/ node-static SSR https://github.com/ ...
- open an iOS simulator from the terminal
open an iOS simulator from the terminal # simulator $ open -a Simulator flutter https://flutter.dev/ ...
- svg rect to polygon points & points order bug
svg rect to polygon points & points order bug https://codepen.io/xgqfrms/pen/vYOWjYr?editors=100 ...
- linux bash shell & lsof & grep & ps
linux bash shell & lsof & grep & ps lsof list all open files # lsof & grep $ lsof -P ...
- 未来,Baccarat将如何拓展生态版图?
Baccarat最近几度冲上DeFi版面的热搜,一是因为BGV价格不断的上涨,二是因为生态建设者的不断涌入.可以说,当下的Baccarat,实在是太火爆了.那么在未来,Baccarat还将会持续火爆吗 ...
- Baccarat中挖矿、兑换和做市的三角关系是什么?
NGK在这波DeFi潮中,推出了Baccarat,为用户带来了流动性挖矿收益,今天笔者就讲一讲Baccarat中挖矿.兑换和做市的关系. 兑换和做市是什么关系呢?众所周知,换币者,是用一种货币去换另一 ...