设计一个算法求串s所含不同字符的总数和每种字符的个数。假设串采用链串存储结构。用相关数据进行测试。
时间: 2024-10-23 20:10:19 浏览: 22
设计一个算法来计算字符串s中不同字符的数量以及每个字符的个数,可以按照以下步骤操作:
1. 初始化:创建两个变量,`uniqueChars` 记录不同字符的数量,`charCount` 创建一个哈希表或字典(如Python中的dict),用于存储每个字符及其出现次数。
2. 遍历链串:从头节点开始遍历链串。对于链串中的每一个字符 `c`,
- 如果 `c` 不在 `charCount` 中,则增加 `uniqueChars` 的值,并将 `c` 加入 `charCount`,初始化其计数为1。
- 否则,如果 `c` 已经在 `charCount` 中,将其对应的计数加1。
3. 统计完成:遍历完成后,`uniqueChars` 就是不同字符的数量,而 `charCount` 中的键值对就是每个字符及其出现的次数。
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def count_unique_chars(head):
uniqueChars = 0
charCount = {}
current = head
while current is not None:
if current.val not in charCount:
uniqueChars += 1
charCount[current.val] = 1
else:
charCount[current.val] += 1
current = current.next
return uniqueChars, charCount
# 测试示例
head = ListNode('a')
head.next = ListNode('b')
head.next.next = ListNode('c', ListNode('a'))
head.next.next.next = ListNode('d')
unique, counts = count_unique_chars(head)
print("不同字符数量:", unique)
print("字符计数:", counts)
```
阅读全文