leetcode-Reverse Vowels of a String
2016-04-26 13:07
351 查看
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".
代码解析:
public class Solution {
public static String reverseVowels(String s) {
// if(s == null) return null;
int len = s.length();
char tmp;
//构造数组操作
char[] arr = s.toCharArray();
for(int i =0 ,j=len-1 ; i<j ;i++,j--){
char chi = arr[i];
if(!isVowels(chi)){
j++;
continue;
}
char chj = arr[j];
if(!isVowels(chj)){
i--;
continue;
}
if(isVowels(chi)&&isVowels(chj)){
//因为string是不可变的~~~!!!!所以不能赋值
tmp = arr[i];
arr[i] = arr[j];
arr[j]= tmp;
//s.charAt(i) = chj;
//上述形式为什么老是编译不过???
//因为String一旦定义好,就不可改变!!!!因此将String -> Arrays!!!
}
}
//char -> string ,使用 String.valueOf(), arrays.toString()返回的不是原样式的String
return String.valueOf(arr);
}
public static boolean isVowels(char ch){
if(ch=='A'||ch=='E'||ch=='I'||ch=='O'||ch=='U'||ch=='a'||ch=='e'||ch=='i'||ch=='o'||ch=='u') return true;
return false;
}
}
总结:Array -> String三种方式:
1、String.valueOf(arr); //直接传入
2、new String(arr); //直接传入
3、sb = new StringBuilder();
sb.append(arr[i]); //依次传入
String -> array: str.toCharArray(); 字符数组
char -> int : i = char-'0';
int -> char : char = i+'0';
Example 1:
Given s = "hello", return "holle".
Example 2:
Given s = "leetcode", return "leotcede".
代码解析:
public class Solution {
public static String reverseVowels(String s) {
// if(s == null) return null;
int len = s.length();
char tmp;
//构造数组操作
char[] arr = s.toCharArray();
for(int i =0 ,j=len-1 ; i<j ;i++,j--){
char chi = arr[i];
if(!isVowels(chi)){
j++;
continue;
}
char chj = arr[j];
if(!isVowels(chj)){
i--;
continue;
}
if(isVowels(chi)&&isVowels(chj)){
//因为string是不可变的~~~!!!!所以不能赋值
tmp = arr[i];
arr[i] = arr[j];
arr[j]= tmp;
//s.charAt(i) = chj;
//上述形式为什么老是编译不过???
//因为String一旦定义好,就不可改变!!!!因此将String -> Arrays!!!
}
}
//char -> string ,使用 String.valueOf(), arrays.toString()返回的不是原样式的String
return String.valueOf(arr);
}
public static boolean isVowels(char ch){
if(ch=='A'||ch=='E'||ch=='I'||ch=='O'||ch=='U'||ch=='a'||ch=='e'||ch=='i'||ch=='o'||ch=='u') return true;
return false;
}
}
总结:Array -> String三种方式:
1、String.valueOf(arr); //直接传入
2、new String(arr); //直接传入
3、sb = new StringBuilder();
sb.append(arr[i]); //依次传入
String -> array: str.toCharArray(); 字符数组
char -> int : i = char-'0';
int -> char : char = i+'0';
相关文章推荐
- UVaLA 4670 Dominating Patterns AC自动机
- Oracle 表分区与索引分区
- 有关Linux下库的概念、生成和升级和使用等
- GDB使用
- leetcode-Reverse String
- mongodb 日期类型
- 浅谈ajax的优点与缺点
- [LintCode] Left Pad 左填充
- docloud后台管理项目(前端篇)
- Java中连接各种数据库的方法
- leetcode-Multiply Strings
- Zabbix实战笔记
- Chart.js 使用示例
- 笔试题:输入0123456789对应输出“一二三四五六七八九”
- 如何查找论文是否被SCI,EI检索
- Objective-c 字符串的拼接
- yii2 debug工具条不出现
- Android之二维码的扫描与生成
- 温柔的鲨鱼
- little alchemy攻略