Reverse Vowels of a String

来源:互联网 发布:在ubuntu安装虚拟机 编辑:程序博客网 时间:2024/05/29 07:23

https://leetcode.com/problems/reverse-vowels-of-a-string/
给定一个字符串,字符串两端属于元音字母的字符互换位置;
C代码:

char* reverseVowels(char* s) {    int start = 0;    int end = strlen(s)-1;    char lChar;    char rChar;    int i = start,j = end;    while(i < j)    {        while(i <= end)        {            if(s[i] == 'U' || s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u')            {                lChar = s[i];                break;            }            i++;        }        while(j >= 0)        {            if(s[j] == 'U' || s[j] == 'A' || s[j] == 'E' || s[j] == 'I' || s[j] == 'O' ||  s[j] == 'a' || s[j] == 'e' || s[j] == 'i' || s[j] == 'o' || s[j] == 'u')            {                rChar = s[j];                break;            }            j--;        }        if(i < j)        {            s[i] = rChar;            s[j] = lChar;            i++;            j--;        }    }    return s;}

Java代码:

public class Solution {    public String reverseVowels(String s) {        int start = 0;        int end = s.length() - 1;        int i = start,j = end;        char temp;        char[] str = s.toCharArray();        while(i < j)        {            while(i <= end)            {                if(str[i] == 'U' || str[i] == 'A' || str[i] == 'E' || str[i] == 'I' || str[i] == 'O' || str[i] == 'a' || str[i] == 'e' || str[i] == 'i' || str[i] == 'o' || str[i] == 'u')                {                    break;                }                i++;            }            while(j >= 0)            {                if(str[j] == 'U' || str[j] == 'A' || str[j] == 'E' || str[j] == 'I' || str[j] == 'O' || str[j] == 'a' || str[j] == 'e' || str[j] == 'i' || str[j] == 'o' || str[j] == 'u')                {                    break;                }                j--;            }            if(i < j)            {                temp = str[i];                str[i] = str[j];                str[j] = temp;                i++;                j--;            }        }        return String.valueOf(str);    }}
0 0