编程题
### 问题描述 给定一个数字字符串,你需要从该字符串中找出满足条件的连续子数字对的数量。这里所说的连续子数字是指数字字符串截去任意长度的前缀和后缀(可以为零)得到的剩余数字表示,**截取出的剩余数字不能有前导 $0$。** 例如,对于数字字符串 $1234567$,其中一个合法的连续子数字是 $456$,但 $124$ 和 $235$ 都不合法。 现在的任务是找到两个不重叠的连续子数字,使得这两个连续子数字满足以下条件: - 子数字 $1$ 是子数字 $2$ 的逆序。 然后求出满足条件的连续子数字对的数量。 ### 输入格式 第一行输入一个正整数 $n$,表示字符串的长度。$(1\le n\le 5\times 10^3)$ 第二行输入一个字符串 $s$。$(|s|=n,1\le i\le n,s_i\in \lbrace 0,1,...,8,9\rbrace)$ 输入数据不包含前导 $0$。 ### 输出格式 输出一个整数,为满足条件的连续子数字对的数量。 ### 样例输入 1 ``` 4 1001 ``` ### 样例输出 2 ``` 1 ``` ### 样例输入 2 ``` 8 12100121 ``` ### 样例输出 2 ``` 10 ``` ### 说明 对于样例 $1$:只有 $s_1$ 与 $s_4$ 是逆序关系。 对于样例 $2$:$s_1,s_3,s_6,s_8$ 共形成 $6$ 对逆序关系,$s_2,s_7$ 形成 $1$ 对逆序关系,$s_{1\sim 2},s_{7\sim 8}$ 形成 $1$ 对逆序关系,$s_{2\sim 3},s_{6\sim7}$ 形成 $1$ 对逆序关系,$s_{1\sim 3},s_{6\sim8}$ 形成 $1$ 对逆序关系。共计 $10$ 对。
查看答案
赣ICP备20007335号-2