LeetCode 345

Reverse Vowels of a String

Write a function that takes a string as input
and reverse only the vowels of a string.

Example 1:
Given s = "hello", return "holle".

Example 2:
Given s = "leetcode", return "leotcede".

 1 /*************************************************************************
 2     > File Name: LeetCode345.c
 3     > Author: Juntaran
 4     > Mail: JuntaranMail@gmail.com
 5     > Created Time: Tue 10 May 2016 08:55:33 PM CST
 6  ************************************************************************/
 7  
 8 /*************************************************************************
 9     
10     Reverse Vowels of a String
11     
12     Write a function that takes a string as input 
13     and reverse only the vowels of a string.
14 
15     Example 1:
16     Given s = "hello", return "holle".
17 
18     Example 2:
19     Given s = "leetcode", return "leotcede".
20 
21  ************************************************************************/
22 
23 #include <stdio.h>
24 
25 int isVowels( char s )
26 {
27     int flag = 0;
28     if( s=='a' || s=='e' || s=='i' || s=='o' || s=='u' || s=='A' || s=='E' || s=='I' || s=='O' || s=='U' )
29     {
30         flag = 1;
31     }
32     return flag;
33 }
34 
35 char* reverseVowels( char* s )
36 {
37     int left  = 0;
38     int right = strlen(s) - 1;
39     
40     printf("%c %c
", s[left], s[right]);
41     char temp;
42     
43     
44     while( left < right )
45     {
46         printf("%d %d
", left, right);
47         if( isVowels(s[left]) == 1 )
48         {
49             if( isVowels(s[right]) == 1 )
50             {
51                 temp = s[left];
52                 s[left] = s[right];
53                 s[right] = temp;
54                 
55                 left ++;
56                 right--;
57                 printf("%s
", s);
58             }
59             else
60             {
61                 right--;
62             }
63         }
64         else
65         {
66             left ++;
67         }
68     }
69     return s;
70 }
71 
72 int main()
73 {
74     char* s = "leetcode";
75     printf("%s
", s);
76     char* reverseS = reverseVowels(s);
77     printf("%s
", s);
78     
79     
80     return 0;
81 }
原文地址:https://www.cnblogs.com/Juntaran/p/5482787.html