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(1)-两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums = [2, 7, 11, 15], target ...
- 近期做的一些DP
UVa 1625 color length https://blog.csdn.net/Dylan_Frank/article/details/52261424 https://www.cnblogs ...
- mybatis(十一)mybatis常见问题
用注解还是用 xml 配置? 常用注解:@Insert.@Select.@Update.@Delete.@Param.@Results. @Result 在 MyBatis 的工程中,我们有两种配置 ...
- (数据科学学习手札107)在Python中利用funct实现链式风格编程
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 链式编程是一种非常高效的组织代码的方式,典型如p ...
- 1. mac 手动安装nodejs搭建vue环境
为什么选择手动安装nodejs呢? 因为使用mac自动安装还要更新homebrew,还要安装xcode tool, 太费劲了,不如手动安装, 卸载起来也方便 再一个, 我是后台开发者, 对前端页面, ...
- Linux 创建/编辑/查看 文件/文件夹的命令汇总
Linux 创建/编辑/查看 文件/文件夹的命令汇总 Linux 创建文件的命令Linux,编辑文件的命令Linux 查看文件的命令,touch,vim,vi,gedit,cat,ls -a, ls ...
- 2020 front-end interview
2020 front-end interview https://juejin.im/post/5e083e17f265da33997a4561 xgqfrms 2012-2020 www.cnblo ...
- css & multi line words & ellipsis
css & multi line words & ellipsis bug .news-card-content-title { width: 100%; height: 0.8rem ...
- ts 遍历Class上的属性和方法
interface Type<T> extends Function { new (...args: any[]): T; } class Data { name = "ajan ...
- Datahero Inc利用区块链溯源,造福各行各业
近些年来,随着区块链技术的不断崛起以及快速发展,越多越多的人提出将区块链技术引入到溯源系统当中,溯源也成为了区块链技术的重要应用场景之一. 目前,Datahero inc已建设一整套的溯源平台系统,基 ...