题解 | #字符串变形#
字符串变形
https://www.nowcoder.com/practice/c3120c1c1bc44ad986259c0cf0f0b80e
我的思路其实很简单,只是被JAVA的spilt函数搞懵逼了,主要还是因为split的第二个参数没有设置为-1。
导致分割的时候如果有一些单词前面有空格会被filter掉,所以一直卡在这里,看了题解发现别人用py写的能分割出来,我的不行!?
后来也是无意中看到加了一个参数-1就能分割了,真的是大无语事件阿,呜呜呜!
思路其实就是先分割每一个单词(包含多余空格),之后对顺序的单词列表进行逆序的转换,也就是逆序迭代每个单词,将每个单词的大写转小写,小写转大写。
这里要注意的是去除最后一个多余的空格,否则会导致数组越界异常!
我是用字符数组去存储每个字符的,最后在转换为字符串输出!
import java.util.*;
public class Solution {
public String trans(String s, int n) {
String[] str = s.split(" ",-1);
System.out.println(str.length);
char[] result = new char[n];
int num = 0;
for (int i = str.length - 1; i >= 0; i--) {
for (char c : str[i].toCharArray()) {
result[num++] = Character.isUpperCase(c) ? Character.toLowerCase(
c) : Character.toUpperCase(c);
}
if (i != 0) {
result[num++] = ' ';
}
}
return String.valueOf(result);
}
}