作者:小迅
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
题目
示例
思路
题意 -> 给定两个字符串s, t, 寻找 s 中的子串为 t中子串相差1个字符的个数。
按照题目给定意思,直接枚举两个字符串的子串进行对比即可。
定义两个指针,一个为s子串的起点,一个为t子串的起点,然后定义一个指针k为s和t子串的长度,枚举k的位置然后比较长度为k的子串是否满足题目要求,题目要求为不同字符相差为1,可以没有一个变量diff,如果diff等于1时记录大小,diff大于1时结束当前起始位置长度枚举
代码注释超级详细
代码
int countSubstrings(char * s, char * t) {
int m = strlen(s), n = strlen(t);
int ans = 0;
for (int i = 0; i < m; i++) {//枚举s起点
for (int j = 0; j < n; j++) {//枚举t起点
int diff = 0;
for (int k = 0; i + k < m && j + k < n; k++) {//枚举长度
diff += s[i + k] == t[j + k] ? 0 : 1;
if (diff > 1) {//统计大小和结束
break;
} else if (diff == 1) {
ans++;
}
}
}
}
return ans;
}
作者:小迅
链接:https://leetcode.cn/problems/count-substrings-that-differ-by-one-character/solutions/2192914/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-yeuc/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。