4. 输出字符串s='hello world'中所有元音的索引。元音是指'aeiouAEIOU'中的字符之一。python
时间: 2024-05-07 07:23:53 浏览: 96
的代码应该怎么写?
下面是代码示例:
```python
s = 'hello world'
vowels = 'aeiouAEIOU'
# 使用 for 循环和 enumerate() 函数遍历字符串 s,
# 如果字符是元音,则将其索引添加到列表中
vowel_indexes = [i for i, char in enumerate(s) if char in vowels]
# 输出元音的索引
print(vowel_indexes)
```
输出结果为:
```
[1, 4, 7, 9]
```
解释:在字符串 "hello world" 中,元音字符 'e'、'o'、'o'、'a' 的索引分别为 1、4、7、9。
相关问题
使用kotlin解决这个问题:345. 反转字符串中的元音字母 给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。 元音字母包括 'a'、'e'、'i'、'o'、'u',且可能以大小写两种形式出现不止一次。 示例 1: 输入:s = "hello" 输出:"holle" 示例 2: 输入:s = "leetcode" 输出:"leotcede" 提示: 1 <= s.length <= 3 * 105 s 由 可打印的 ASCII 字符组成
以下是使用 Kotlin 解决 LeetCode 345. 反转字符串中的元音字母问题的代码:
```kotlin
fun reverseVowels(s: String): String {
val vowels = "aeiouAEIOU"
var left = 0
var right = s.length - 1
val charArray = s.toCharArray()
while (left < right) {
while (left < right && !vowels.contains(charArray[left])) {
left++
}
while (left < right && !vowels.contains(charArray[right])) {
right--
}
val temp = charArray[left]
charArray[left] = charArray[right]
charArray[right] = temp
left++
right--
}
return String(charArray)
}
```
解题思路:
我们可以使用双指针的方法来解决此问题。我们定义两个指针 left 和 right,分别指向字符串的首尾位置,然后向中间移动,每次判断 left 和 right 指向的字符是否是元音字母,如果是,则交换两个字符,然后将 left 指针右移一位,right 指针左移一位,直到 left >= right 为止。
时间复杂度:O(n),其中 n 是输入字符串的长度。
空间复杂度:O(n),需要使用一个字符数组来保存结果字符串。
注意:本题还有一种使用 HashSet 来保存元音字母的解法,但是空间复杂度也是 O(n),不符合题目要求,此处不再赘述。
写一个函数,将一个字符串中的元音字母复制到另一个字符串,然后输出。 程序的运行示例如下: 提示信息:"\n输入字符串:" 字符串中的元音字母是eoo ***输入数据格式***:使用gets() ***输出数据格式***:"\n字符串中的元音字母是%s" 程序运行示例: 输入字符串:Hello,world!↙ Hello,world! 字符串中的元音字母是eoo
下面是一个 C 语言的示例代码:
```c
#include <stdio.h>
#include <string.h>
int is_vowel(char c) {
char vowels[] = "aeiouAEIOU";
for (int i = 0; i < strlen(vowels); i++) {
if (c == vowels[i]) {
return 1;
}
}
return 0;
}
void copy_vowels(char *src, char *dst) {
int len = strlen(src);
int k = 0;
for (int i = 0; i < len; i++) {
if (is_vowel(src[i])) {
dst[k] = src[i];
k++;
}
}
dst[k] = '\0';
}
int main() {
char str[100];
printf("\n输入字符串:");
gets(str);
char vowels[100];
copy_vowels(str, vowels);
printf("\n字符串中的元音字母是%s", vowels);
return 0;
}
```
该程序中,`is_vowel` 函数用于判断一个字符是否为元音字母。在 `copy_vowels` 函数中,对源字符串进行遍历,如果发现元音字母,就将其复制到目标字符串中,并且在末尾添加一个空字符。最后,主函数中调用 `copy_vowels` 函数,将源字符串和目标字符串作为参数传递进去,然后输出目标字符串即可。注意,由于使用了 `gets` 函数,所以在输入字符串时需要在末尾加上回车符。
阅读全文
相关推荐















