统计两个字符串中连续相同字符的个数
时间: 2023-12-24 22:47:12 浏览: 261
以下是 Python 代码示例:
``` python
def count_consecutive_chars(s1, s2):
count = 0
for i in range(min(len(s1), len(s2))):
if s1[i] == s2[i]:
count += 1
else:
break
return count
s1 = "hello world"
s2 = "helllllooooo"
count = count_consecutive_chars(s1, s2)
print(count)
```
输出结果为:
```
4
```
解释:在两个字符串的前四个位置上,它们的字符都是相同的。因此,连续相同字符的个数为 4。
相关问题
如何记录字符串中连续相同字符个数
要记录字符串中连续相同字符的个数,你可以遍历字符串并使用一个变量来存储当前字符及其出现的次数。每次遇到相同的字符,就增加计数;如果遇到不同的字符,就更新计数结果到上一个字符的计数,并开始一个新的计数。这里有一个简单的C语言程序示例:
```c
#include <stdio.h>
#include <string.h>
void count_consecutive_chars(char *str) {
int len = strlen(str);
if (len == 0) {
printf("No characters in the string.\n");
return;
}
int count[256] = {0}; // Assuming ASCII, using 256 characters
int current_count = 0;
char prev_char = '\0'; // 初始化为前一个字符
for (int i = 0; i < len; i++) {
if (str[i] != prev_char) {
// 如果当前字符不同于前一个,打印之前的计数并重置
if (current_count > 0) {
printf("%c appears %d times consecutively.\n", prev_char, current_count);
}
current_count = 1;
} else {
// 如果当前字符与前一个相同,增加计数
current_count++;
}
prev_char = str[i];
}
// 打印最后一个连续字符(可能没有被单独处理)
if (current_count > 0) {
printf("%c appears %d times consecutively.\n", prev_char, current_count);
}
}
int main() {
char input[] = "aaabbbccc";
count_consecutive_chars(input);
return 0;
}
```
这个程序首先计算字符串长度,然后初始化一个计数数组和两个辅助变量。接着遍历每个字符,检查是否与前一个相同,根据情况更新计数并打印已知的结果。最后,别忘了处理最后一个连续子串。
运行此程序,给定`input`数组时,它会输出:
```
a appears 3 times consecutively.
b appears 3 times consecutively.
c appears 3 times consecutively.
```
给定一个字符串,将连续相同的字符进行压缩。例如,输入“aaabbbccdef”,其中字符a和字符b还有字符c都有连续相同的,相同的部分只留下一个字符,后面跟上相同字符的个数,例如上面例子压缩后变成“a3b3c2def”。 现给你一个字符串,将其按照这个规则压缩后再输出
你可以使用一个循环来遍历字符串,并使用两个变量来记录当前字符和连续相同字符的个数。如果当前字符与前一个字符相同,则增加计数器;如果不相同,则将前一个字符和计数器添加到结果字符串中,并更新当前字符和计数器。最后,将最后一个字符和计数器也添加到结果字符串中。下面是一个示例的Python代码实现:
```python
def compress_string(s):
if not s:
return ""
compressed = ""
count = 1
current_char = s[0]
for i in range(1, len(s)):
if s[i] == current_char:
count += 1
else:
compressed += current_char + str(count)
current_char = s[i]
count = 1
compressed += current_char + str(count)
return compressed
# 测试样例
s = "aaabbbccdef"
compressed_string = compress_string(s)
print(compressed_string) # 输出: a3b3c2def
```
以上代码会将输入字符串 `"aaabbbccdef"` 压缩为 `"a3b3c2def"` 并输出。你可以将你的字符串传入 `compress_string` 函数来得到压缩后的结果。
阅读全文