?151.翻轉字符串里的單詞
題目鏈接 | 文檔講解 |視頻講解 :?鏈接
?1.思路:
-
1.去除字符串頭尾的空格 ,使用庫函數 trim()
-
2.對字符串進行分割,使用庫函數split()
-
3.創建StringBuilder sb,遍歷集合,中間是空格不處理,非空格sb拼接單詞后,添加空格,最后一次遍歷不需要添加空格
-
4.返回字符串
?2.代碼:
public static String reverseWords(String s) {//去除字符串開頭和結尾的空格String s2 = s.trim();//進行字符串分割String[] s1 = s2.split(" ");StringBuilder sb= new StringBuilder();for (int i = s1.length - 1; i >= 0; i--) {//中間是空格的不做處理if(s1[i].equals("")){continue;}//非空格元素追加sb.append(s1[i]);//中間單詞之間需要空格,最后一個元素后面不需要加空格,只有if (i != 0) {sb.append(" ");}}return sb.toString();}
還有一種老師的思路還沒有縷清楚,周末補充~~
卡碼網:55.右旋轉字符串
題目鏈接 | 文檔講解 |視頻講解:鏈接
?1.思路:
-
1.先將整個字符串反轉
-
?2.反轉前k個字符?
-
3.反轉k后面的字符串
?2.代碼:
public static String rightReverseWords(String s,int k) {char[] charArray = s.toCharArray();//1反轉整個字符串 雙指針reverse(charArray,0,s.length()-1);//2.反轉前半段reverse(charArray,0,k-1);//3.反轉后半段reverse(charArray,k,s.length()-1);return new String(charArray);}public static void reverse(char [] a,int left,int right){while (left<right){char temp=a[left];a[left]=a[right];a[right]=temp;left++;right--;}}
?1.思路:
-
使用現有的方法,字符串中substring方法,區間范圍是左閉右開
?2.代碼:
public static String rightReverseWords2(String s,int k) {//subString 左閉右開String start = s.substring(s.length() -k, s.length() );System.out.println(start);String end = s.substring(0,s.length() -k );System.out.println(end);return start+end;}