class SqString: #顺序串类 def __init__(self): #构造方法 self.data=[None]*MaxSize #存放串中字符 self.size=0 #串中字符个数 #串的基本运算算法 def StrAssign(self,cstr): #创建一个串 for i in range(len(cstr)): self.data[i]=cstr[i] self.size=len(cstr) def StrCopy(self): #串复制 s=SqString() for i in range(self.size): s.data[i]=self.data[i] s.size=self.size return s def getsize(self): #求串长 return self.size def __getitem__(self,i): #求序号为i的元素 assert 0<=i<self.size #检测参数i正确性的断言 return self.data[i] def __setitem__(self,i,x): #设置序号为i的元素 assert 0<=i<self.size #检测参数 self.data[i]=x def Concat(self,t): #串连接 s=SqString() #新建一个空串 s.size=self.size+t.getsize() for i in range(self.size): #将当前串data[0..str.size-1]->s s.data[i]=self.data[i] for i in range(t.getsize()): #将t.data[0..t.size-1]->s s.data[self.size+i]=t.data[i] return s #返回新串s def SubStr(self,i,j): #求子串
时间: 2024-01-24 16:04:55 浏览: 107
time-function-in-C-and-CPP.rar_In Time
def SubStr(self,i,j):
assert i >= 0 and j >= 0 and i+j <= self.size, "Index out of range" # 检测参数i, j的正确性
s = SqString() # 创建一个新串
s.size = j # 设置新串的长度为j
for k in range(j): # 将当前串中的第i到第i+j-1个字符复制到新串中
s.data[k] = self.data[i+k]
return s # 返回新串
阅读全文