洛谷b3670玉桂狗
时间: 2024-01-14 16:20:17 浏览: 55
根据您提供的引用内容,洛谷b3670玉桂狗是一道KMP算法的题目。该题目要求我们求出一个字符串中有多少个非前缀且能与前缀匹配的字符串。具体做法是先求出next数组,然后遍历next数组,统计num数组中大于0的元素个数即可。
以下是该题的Python代码实现:
```python
def get_next(s):
n = len(s)
next = [0] * (n + 1)
j = 0
for i in range(1, n):
while j > 0 and s[i] != s[j]:
j = next[j]
if s[i] == s[j]:
j += 1
next[i + 1] = j
return next
s = input()
n = len(s)
next = get_next(s)
num = [0] * (n + 1)
for i in range(2, n + 1):
if next[i] > 0:
num[i] = num[next[i]] + 1
print(sum(num))
```
相关问题
python画图玉桂狗
你想要使用Python来画一幅玉桂狗的图像,对吗?那么,你可以使用Python的绘图库Matplotlib来实现这个目标。以下是一个简单的示例代码,可以帮助你开始:
```python
import matplotlib.pyplot as plt
# 绘制狗的轮廓
dog_outline = [
(0, 2), (1, 2), (1, 3), (2, 3), (2, 4), (3, 4), (3, 5),
(4, 5), (4, 6), (5, 6), (5, 7), (6, 7), (6, 8), (7, 8),
(7, 9), (8, 9), (8, 10), (9, 10), (9, 11), (10, 11),
(10, 12), (11, 12), (11, 13), (12, 13), (12, 14),
(13, 14), (13, 15), (14, 15), (14, 16), (15, 16)
]
# 绘制玉桂狗的轮廓
x_coords = [coord[0] for coord in dog_outline]
y_coords = [coord[1] for coord in dog_outline]
plt.plot(x_coords, y_coords)
# 添加标题和标签
plt.title('玉桂狗')
plt.xlabel('x')
plt.ylabel('y')
# 显示图像
plt.show()
```
请注意,上述代码只是一个简单的示例,绘制的图像可能并不真实地展示出玉桂狗的外观。你可以根据实际需求进行调整和修改。希望这能对你有所帮助!
玉桂狗python编程代码
玉桂狗是一种基于Python的编程语言,它是为了让初学者更容易入门编程而设计的。下面是一个简单的玉桂狗Python编程代码示例:
```
狗叫声 = "汪汪汪"
如果 狗叫声 == "汪汪汪":
打印("狗正在叫")
否则:
打印("狗安静")
```
这段代码的功能是判断狗是否在叫,如果狗叫声为"汪汪汪",则打印"狗正在叫",否则打印"狗安静"。