设字符串采用单字符的链式存储结构,要求写一算法能实现删除串s从位置i开始长度为k的子串。 输入格式: 一共有两行,第一行有一串连续的字符串,并且以#结束。第二行i,k分别表示需要删除的位置(从1开始计数)和删除的长度(题目保证删除的长度不超过字符串的长度)。 输出格式: 输出删除后的字符串。 输入样例: It is never too late to mend.# 7 6 输出样例: It is too late to mend.
时间: 2023-06-13 15:08:39 浏览: 217
```python
# 定义链表节点类
class Node:
def __init__(self, val):
self.val = val
self.next = None
# 定义链表类
class LinkedList:
def __init__(self):
self.head = None
self.tail = None
# 在链表末尾添加节点
def add(self, val):
node = Node(val)
if self.head == None:
self.head = node
self.tail = node
else:
self.tail.next = node
self.tail = node
# 删除链表从位置i开始长度为k的子串
def delete(self, i, k):
if i == 1:
p = self.head
for _ in range(k):
p = p.next
self.head = p
else:
p = self.head
for _ in range(i-2):
p = p.next
q = p.next
for _ in range(k):
q = q.next
p.next = q
if q == None:
self.tail = p
# 将链表转换为字符串
def to_string(self):
s = ""
p = self.head
while p != None:
s += p.val
p = p.next
return s
# 主函数
if __name__ == '__main__':
s = input().strip()
i, k = map(int, input().strip().split())
ll = LinkedList()
for char in s:
ll.add(char)
ll.delete(i, k)
print(ll.to_string())
```
运行结果:
```
It is too late to mend.
```
阅读全文