输入:"aabbacccdddb" 输出: "3a3b3c3d"
时间: 2023-05-18 07:02:30 浏览: 191
答案:"aabbacccdddb" 可以被压缩为 "3a3b3c3d",其中每个字符都是连续出现的次数。这个问题可以通过遍历字符串并计算每个字符出现的次数来解决。以下是一个可能的实现:
```python
def compress_string(s):
if not s:
return ""
result = ""
count = 1
prev_char = s[0]
for i in range(1, len(s)):
if s[i] == prev_char:
count += 1
else:
result += str(count) + prev_char
prev_char = s[i]
count = 1
result += str(count) + prev_char
return result
```
这个函数遍历字符串,对于每个字符,它检查它是否与前一个字符相同。如果是,它增加计数器。否则,它将计数器和前一个字符的编码添加到结果字符串中,并将计数器重置为 1。最后,它添加最后一个字符的编码和计数器。
相关问题
统计字符串个数。从键盘输入 a-z 的字符串,统计每个字母出现的个数。如:输入:"aabbacccdddb" 输出: "3a3b3c3d",请用C语言使用三种方法实现
好的,我可以回答这个问题。以下是三种不同的方法实现统计字符串中每个字母出现的次数:
方法一:使用数组
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int count[26] = {0};
int i, len;
printf("请输入字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0; i < len; i++) {
count[str[i] - 'a']++;
}
for (i = 0; i < 26; i++) {
if (count[i] > 0) {
printf("%d%c", count[i], i + 'a');
}
}
return 0;
}
```
方法二:使用指针
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int count[26] = {0};
int i, len;
char *p;
printf("请输入字符串:");
scanf("%s", str);
len = strlen(str);
p = str;
while (*p != '\0') {
count[*p - 'a']++;
p++;
}
for (i = 0; i < 26; i++) {
if (count[i] > 0) {
printf("%d%c", count[i], i + 'a');
}
}
return 0;
}
```
方法三:使用哈希表
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int count[26] = {0};
int i, len;
printf("请输入字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0; i < len; i++) {
count[str[i] - 'a']++;
}
for (i = 0; i < 26; i++) {
if (count[i] > 0) {
printf("%d%c", count[i], i + 'a');
}
}
return 0;
}
```
以上三种方法都可以实现统计字符串中每个字母出现的次数,具体使用哪种方法取决于个人喜好和实际情况。
java.lang.IllegalArgumentException: Illegal base64 character 3a
java.lang.IllegalArgumentException: Illegal base64 character 3a是一种异常,通常在使用Base64工具类对数据进行处理时出现。这个异常表示在解码过程中遇到了非法的base64字符,其中"3a"表示非法字符的十六进制表示。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [数据加解密时Base64异常:Illegal base64 character 3a](https://blog.csdn.net/qq_41975712/article/details/130221023)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [java.lang.IllegalArgumentException:Input == null的异常处理](https://download.csdn.net/download/weixin_38645373/14043809)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [Base64解码遇到java.lang.IllegalArgumentException: Illegal base64 character d](https://blog.csdn.net/qq_48455576/article/details/121295709)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]