题解 | #字符串变形#
字符串变形
https://www.nowcoder.com/practice/c3120c1c1bc44ad986259c0cf0f0b80e
import java.util.*; public class Solution { public String trans(String s, int n) { // write code here if(n == 0){ return s; } // 大小写更替 StringBuffer str = new StringBuffer(); for(int i=0;i<n;i++){ if(s.charAt(i) >= 'a' && s.charAt(i) <= 'z'){ str.append((char)(s.charAt(i) - 'a' + 'A')); }else if(s.charAt(i) >= 'A' && s.charAt(i) <= 'Z'){ str.append((char)(s.charAt(i) - 'A' + 'a')); }else{ str.append(s.charAt(i)); } } // 整体颠倒 str = str.reverse(); // 以空格为单位部分颠倒 for(int i=0;i<n;i++){ int j = i; while(j < n && str.charAt(j) != ' '){ j++; } // while结束相当于在空格处,我们对i-j-1进行颠倒 String temp = str.substring(i,j); StringBuffer buffer = new StringBuffer(temp); temp = buffer.reverse().toString(); str.replace(i,j,temp); i = j; } return str.toString(); } }