小蓝在黑板上连续写下从 1 到 2023 之间所有的整数,得到了一个数字序 列: S = 12345678910111213 . . . 20222023。 小蓝想知道 S 中有多少种子序列恰好等于 2023
时间: 2024-04-01 15:35:04 浏览: 15
好的,让我来回答你的问题。这是一道字符串匹配的问题。可以使用 KMP 算法进行求解。
具体做法如下:
1. 将要匹配的模式串设为 "2023",并计算出它的 next 数组。
2. 从 S 的第一个字符开始,依次比较 S 中长度为 4 的子串和模式串是否匹配。
3. 如果匹配成功,则记录下来匹配成功的位置,并移动指针到下一个位置继续匹配。
4. 如果匹配失败,则根据 next 数组移动模式串指针,继续尝试匹配。
5. 当模式串指针移动到模式串末尾时,说明匹配成功,记录下来匹配成功的位置。
最终,匹配成功的位置的数量就是 S 中恰好等于 2023 的子序列的数量。
需要注意的是,这种方法需要计算模式串的 next 数组,时间复杂度为 O(m),其中 m 是模式串的长度。由于模式串长度为 4,因此可以手动计算 next 数组,时间复杂度为 O(1)。
相关问题
小蓝站在一个 n 行 m 列的方格图中间,方格图的每一个方格上都标有一个正整数。
小蓝站在方格图中间,即位于第 (n+1)/2 行和第 (m+1)/2 列的方格上。根据题目给出的信息,我们可以推断方格图的行数和列数都是奇数。
小蓝所站的方格上标有一个正整数,我们可以称这个数为中心数。由于方格图的行数和列数都是奇数,所以中心数在方格图中是唯一的。
假设方格图的中心数为 x,那么小蓝所站的方格上标有的正整数都等于 x。
这是因为如果小蓝所站的方格上标有的正整数不等于 x,那么在方格图中间的某个方格上标有的正整数应该比 x 大或者小于 x,与给出的信息矛盾。
因此,我们可以得出结论:小蓝所站的方格上标有的正整数都等于方格图的中心数。
表1的E列第二行到第4行分别为:小蓝,小刘,小李,写一个vba代码在第一个工作表后面新增名为小蓝,小刘,小李的工作表
以下是实现您要求的VBA代码:
```
Sub createNewSheets()
Dim ws As Worksheet
Dim nameList As Variant
Dim i As Integer
Set ws = ThisWorkbook.Sheets("表1")
nameList = Application.Transpose(ws.Range("E2:E4").Value)
For i = LBound(nameList) To UBound(nameList)
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = nameList(i)
Next i
End Sub
```
这段代码会首先获取当前工作簿中名为“表1”的工作表,然后从该工作表的E列获取名字列表,并在工作簿中新增名为列表中每个名字的工作表。请将此代码复制到VBA编辑器中,然后运行即可。