第一题 翻转字符串344
@Date 2022年1月17日
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
示例 1:
输入:s = [“h”,“e”,“l”,“l”,“o”]
输出:[“o”,“l”,“l”,“e”,“h”]
package day4;
public class 翻转字符串344 {
public static void main(String[] args) {
char [] arr = {'h','e','l','l','o'};//字符必须是单引号,而字符串必须是双引号
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
public static void reverseString(char[] s) {
for (int i = 0,j = s.length-1; i < j ; i++,j--) {
char temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
// public static void reverseString(char[] s) {
// int n = s.length;
// for (int left = 0, right = n - 1; left < right; ++left, --right) {
// char tmp = s[left];
// s[left] = s[right];
// s[right] = tmp;
// }
// }
//不能用这个方法调用,失效
// public static void reverse(char a,char b) {
// char temp;
// temp = a;
// a = b;
// b = temp;
// }
}
第二题 反转字符串中的单词557
**@Date 2022年1月17日
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例:
输入:“Let’s take LeetCode contest”
输出:“s’teL ekat edoCteeL tsetnoc”
******需要注意的是,
******原地解法在某些语言(比如 Java,JavaScript)中不适用,因为在这些语言中 String 类型是一个不可变的类型。
**
package day4;
public class 反转字符串中的单词557 {
public static void main(String[] args) {
String string = "Let's take LeetCode contest";
reverseWords(string);
}
public static String reverseWords(String s) {
String[]string2 = s.split("");
int count = 0;
for (int i = 0; i < string2.length; i++) {
if(string2[i].equals(" ")) {
for (int m = count,n = i-1 ; m < n; m++,n--) {
String temp = string2[m];
string2[m] = string2[n];
string2[n] = temp;
}
count = i+1;
}else if (i == string2.length-1) {
for (int m = count,n = i ; m < n; m++,n--) {
String temp = string2[m];
string2[m] = string2[n];
string2[n] = temp;
}
}
}
for (int i = 0; i < string2.length; i++) {
System.out.print(string2[i]+" ");
}
StringBuffer str5 = new StringBuffer();
for (String ss : string2) {
str5.append(ss);
}
return str5.toString();
// StringBuffer ret = new StringBuffer();
// int length = s.length();
// int i = 0;
// while (i < length) {
// int start = i;
// while (i < length && s.charAt(i) != ' ') {
// i++;
// }
// for (int p = start; p < i; p++) {
// ret.append(s.charAt(start + i - 1 - p));
// }
// while (i < length && s.charAt(i) == ' ') {
// i++;
// ret.append(' ');
// }
// }
// return ret.toString();
// String [] string = s.split(" ");
for (int i = 0; i < string.length; i++) {
System.out.println(string[i]);
}
//
// for (int i = 0; i < string.length; i++) {
// String [] strings = string[i].split("");
// for (int m = 0,n = strings.length-1 ; m < n; m++,n--) {
// String temp = strings[m];
// strings[m] = strings[n];
// strings[n] = temp;
// }
// }
// for (int i = 0; i < string.length; i++) {
// System.out.println(string[i]);
// }
//
// StringBuffer str5 = new StringBuffer();
// for (String ss : string) {
// str5.append(ss);
// }
//
//
// return str5.toString();
}
}