leetcode
Reverse String (反转字符串) https://leetcode-cn.com/problems/reverse-string/
package codingTest4;
public class reverseString {
/*
* 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。
*
* */
//方法1:原地修改输入数组、使用 O(1) 的额外空间
public static void reverseString(char[] chs) {
int start = 0;
int end = chs.length - 1;
while(start < end) {
char temp = chs[start];
chs[start] = chs[end];
chs[end] = temp;
start ++;
end --;
}
}
//方法2:调用StringBuffer中的reverse方法
public static String reverseString2(String str) {
return new StringBuffer(str).reverse().toString();
}
//方法3:准备一个字符串,将各个字符串进行倒序拼接
public static String reverseString3(char[] chs) {
String str = "";
for(int i = chs.length-1; i >= 0; i-- ) {
str += chs[i];
}
return str;
}
public static void main(String[] args) {
System.out.println("---------------------------------");
char[] chs1 = {'a','c','v'};
reverseString(chs1);
for(char ch : chs1) {
System.out.print(ch);
}
System.out.println("---------------------------------");
String str2 = "127855";
System.out.println(reverseString2(str2));
System.out.println("---------------------------------");
char[] chs3 = {'a','c','v'};
String str = reverseString3(chs3);
System.out.println(str);
System.out.println("---------------------------------");
}
}
Reverse Words in a String(翻转字符串里的单词) https://leetcode-cn.com/problems/reverse-words-in-a-string/
package codingTest4;
/**
*
* 给定一个字符串,逐个翻转字符串中的每个单词。
* 思想:
* 先翻转整个句子;
* 然后,依据空格来确定单词的起始和终止位置,依次翻转每个单词。
* */
public class ReverseWordsInString {
public static String reverseWords(String s) {
char[] chs = s.toCharArray();
reverse(chs, 0, chs.length-1);
int blank = -1;//用一个全局变量维持上一个空格的位置
for(int i = 0; i < chs.length; i++) {
if(chs[i] == ' ') {
int nextBlank = i;
reverse(chs, blank+1, nextBlank-1);
blank = nextBlank;
}
}
reverse(chs, blank+1, chs.length-1);
return new String(chs);
}
public static void reverse(char[] chs, int start, int end) {
while(start < end) {
char temp = chs[start];
chs[start] = chs[end];
chs[end] = temp;
start ++;
end --;
}
}
public static void main(String[] args) {
String str = "hi volcano";
System.out.println(reverseWords(str));
}
}
String to Integer (atoi)(字符串转换整数 (atoi)) https://leetcode-cn.com/problems/string-to-integer-atoi/
这个还没搞明白