c++ - S 的至少一次包含字符 X 的不同子串的数量
问题描述
你有一个长度为 N 和一个字符 X 的字符串 S。找出 S 中至少包含一次字符 X 的不同子串的数量。
输入:abcabc c 输出:15 这里的“c”是字符。
解决方案
首先通过公式找到count_total_substring
S字符串。N*(N+1)/2
然后用 X 字符切片/分割字符串。然后我们得到一个排除搜索字符的 S 字符串的标记子字符串数组。现在申请
substring_count=length*(length+1)/2
每个子字符串的公式。将所有子字符串计数相加。总和结果是所有不包含任何 X 字符的子字符串的计数,我们称之为 count_not_present。
现在结果应该是 =count_total_substring - count_not_present.
int c=0, i, notPresent=0;
int totalSubstring = N * (N+1) / 2;
for (i = 0; i < size; i++)
{
if(S.charAt(i) == search) {
notPresent += (c * (c+1) / 2);
c = 0;
}
else {
c++;
}
}
notPresent += (c * (c+1) / 2);
result = totalSubstring - notPresent;
System.out.println(result);
这是我所能找到的。请检查此逻辑是否缺少任何案例。
推荐阅读
- swift - 尝试在 Swift 上触摸屏幕时连续显示一堆图像
- c - 将 char 数组中的十六进制地址转换为 uint8_t
- reactjs - 如何在 React 中设置一组动态范围输入的值?
- vue.js - 如何在指向另一个组件的按钮上执行单击方法?
- r - R - 逗号分隔列,同时添加其他列
- python - 嵌套列表中重复列表的索引
- python - 基于多个匹配的列组合单个文件的行,同时通过附加额外的列来保留唯一的内容
- python - 有什么方法可以在python中获得百分比变化的条形图(倒置)?
- oauth-2.0 - 带有授权码授予的 FusionAuth SPA 与 pkce 示例
- python-3.x - 发生异常:ModuleNotFoundError No module named 'cv2'