用户输入一串小写的英文字母, 输出其中英文字母有几种?
时间: 2024-05-08 13:14:52 浏览: 51
以下是Python的代码实现:
```
letters = input("请输入一串小写的英文字母:")
unique_letters = set(letters)
count = len(unique_letters)
print("这串英文字母中有", count, "种不同的字母。")
```
首先,使用input()函数要求用户输入一串小写的英文字母,并将其存储在变量letters中。然后,使用set()函数将letters中的元素去重,并将结果存储在变量unique_letters中。最后,使用len()函数计算unique_letters中元素的数量,并将结果存储在变量count中。最终输出结果。
相关问题
用户输入一串小写的英文字母, 输出其中英文字母有几种
方法一:
使用set()函数去重,然后统计长度即可。
示例代码:
```python
s = input("请输入一串小写英文字母:")
count = len(set(s))
print("其中不同的英文字母有%d种" % count)
```
方法二:
使用for循环逐个遍历,使用字典进行计数,最后统计字典中键的个数即可。
示例代码:
```python
s = input("请输入一串小写英文字母:")
counts = {}
for c in s:
if c in counts:
counts[c] += 1
else:
counts[c] = 1
count = len(counts)
print("其中不同的英文字母有%d种" % count)
```
两种方法都可以实现,使用set()函数比较简单,但是使用字典可以额外统计每个字母出现的次数。
王村长生了二胎又需要起英文名字,于是他翻开一本书,想从书中摘录m个连续的英文字母作为名字,凑合凑合得了,反正村子里没有人懂英文。这本书的文字长度为n,只用到了 c个小写字母。求名字共有几种不同的选择? 输入输出格式 输入格式 输入正整数n,m和c,1<=m<=5,m<=n<=100000,c<=26。接着是一行字符串,长度为n。 输出格式 输出一个整数。 输入输出样例 输入样例#1: 4 3 2 xxyy 输出样例#1: 2 输入样例#2: 6 2 3 abcabc 输出样例#2: 3 输入样例#3: 8 3 4 daababac 输出样例#3: 5
这个问题可以使用滑动窗口来解决。我们可以使用一个长度为m的滑动窗口,在字符串中移动窗口,并在每个位置记录当前窗口内出现的不同字母数量。当窗口移动到字符串的末尾时,我们就得到了所有可能的连续英文字母序列。
以下是一个使用C++解决该问题的示例代码:
```cpp
#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;
int countDifferentNames(int n, int m, int c, string& s) {
int count = 0;
unordered_set<char> letters;
// 初始化滑动窗口
for (int i = 0; i < m; i++) {
letters.insert(s[i]);
}
count = letters.size();
// 移动滑动窗口
for (int i = m; i < n; i++) {
letters.erase(s[i - m]); // 移除窗口左侧的字母
letters.insert(s[i]); // 添加窗口右侧的字母
count += (letters.size() == c); // 如果当前窗口内的字母数量等于c,则结果加1
}
return count;
}
int main() {
int n, m, c;
cin >> n >> m >> c;
string s;
cin >> s;
int result = countDifferentNames(n, m, c, s);
cout << result << endl;
return 0;
}
```
你可以将输入的n、m、c和字符串s传递给`countDifferentNames`函数,然后打印结果。该函数使用一个unordered_set来记录窗口内出现的不同字母,并通过计算unordered_set的大小来确定不同的选择数量。
希望对你有帮助!如果你有任何其他问题,请随时提问。