c语言找第一个只出现一次的字符pta
时间: 2024-09-19 09:10:48 浏览: 31
大一第一学期C语言PTA-c-code代码
在C语言中,寻找数组中第一个只出现一次的字符可以采用哈希表或者计数排序的思想。这里是一个简单的算法示例,我们先创建一个大小为256(因为ASCII码范围)的布尔型数组`count[]`,用于存储每个字符出现的次数。遍历输入字符串,遇到新字符就将相应位置的`count`置为`true`,遇到已知字符则`count`加一。然后再次遍历字符串,找到第一个`count[i] == 1`的位置,即为首次出现的字符。
```c
#include <stdio.h>
int findFirstUniqueChar(char str[]) {
int count[256] = {0}; // 初始化所有字符出现次数为0
for (int i = 0; str[i] != '\0'; i++) {
count[str[i]]++; // 统计字符出现次数
}
for (int i = 0; str[i] != '\0'; i++) {
if (count[str[i]] == 1) { // 找到首个只出现一次的字符
return i;
}
}
return -1; // 如果没有这样的字符,返回-1表示不存在
}
int main() {
char str[] = "leetcode";
int index = findFirstUniqueChar(str);
if (index != -1) {
printf("The first unique character is '%c' at position %d.\n", str[index], index);
} else {
printf("No unique character found.\n");
}
return 0;
}
```
阅读全文