1.去除字符串头尾的空格 trim2.对字符串进行分割,split3.创建StringBuilder sb,遍历集合,中间是空格就不做处理,非空格sb拼接单词后,添加空格,最后一遍历不需添加空格4.返回字符串1.先将整个字符串反转 2.反转前k个字符 3.反转k后面的字符串 1.思路: 采用现有的方法,字符串中substring方法,区间范围是左闭右开

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
 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;
}

  kmp算法相关题目还没有看,后续补充~~

posted @ 2025-07-27 11:07  wzzkaifa  阅读(18)  评论(0)    收藏  举报