当前位置: 首页 > wzjs >正文

网络推广网站建设有限公司现在什么app引流效果好

网络推广网站建设有限公司,现在什么app引流效果好,百度发布信息怎么弄,建立b2b企业网站一、题目思路 1.快慢指针移除字符串首尾以及单词中的多余空格 类似前面数组篇--移除元素代码随想录刷题day02|(数组篇)27.移除元素、26.删除有序数组中的重复项_代码随想录网站-CSDN博客 快指针fast遍历整个字符串,慢指针slow指向新字符串…

一、题目思路

1.快慢指针移除字符串首尾以及单词中的多余空格

类似前面数组篇--移除元素代码随想录刷题day02|(数组篇)27.移除元素、26.删除有序数组中的重复项_代码随想录网站-CSDN博客

快指针fast遍历整个字符串,慢指针slow指向新字符串中的元素,去除时,只看fast的值,不看slow;fast为空(*),slow=空,说明是开头,slow不移动,移动fast 直到fast指向不为空;fast为空,slow≠空,说明到了某个单词末尾,slow=空,这个操作只执行一次,确保实现每个单词之间有一个空格,同时slow+1,如果fast仍未空,说明单词之间有多个空格,移动fast直到不再为空,此时同时移动slow和fast,并将fast指向元素赋值给slow,直到fast为空,回到 * 位置,重新循环判断;最后slow指向新数组的末尾+1 = 长度;

注:回到for循环后,fast先加1,重复加1,会不会有问题?

当fast没有到末尾,但为空时,最后的while循环结束,重新开始for循环,此时fast指向为空,如果fast++,相当于去除掉指向空格,所以不会出错;

2.将字符串整体反转

类似反转字符串:代码随想录刷题day22|(字符串篇)344.反转字符串、541.反转字符串 II-CSDN博客

3.将每个单词反转

同上,只是需要判断是否到单词末尾,即指向为空时,进行反转;

注:1.for(int end = 0;end <= chars.length;end++)

 //这里<= 是为了 让end指向字符串末尾时和 指向单词间空格时 可以有同样的处理操作,否则end = length - 1 是最后一次循环,但是 reverse中第3个参数是end-1,那么end指向的最后一个单词就不会进行反转,就会出错;如果让第3个参数=end,那么指向单词间空格时就不符合要求,因为此时end 指向空格,空格不参与反转,但判断单词间只能通过判断空格,所以只能让end指向末尾元素的后一位,从而保证两者操作逻辑相同,不用单独处理;

2.if(end == chars.length || chars[end] == ' ') 判断条件的顺序

if(end == chars.length || chars[end] == ' ')  ✅

if(chars[end] == ' ' || end == chars.length) ❌

二、相关算法题目

151.反转字符串中的单词

151. 反转字符串中的单词 - 力扣(LeetCode)

class Solution {public String reverseWords(String s) {char[] chars = s.toCharArray();//1.去除首尾以及单词之间多余空格 快慢指针chars = removeExtraSpaces(chars);//2.反转整个字符串reverse(chars, 0, chars.length - 1);//3.反转单词reverseEachWord(chars);return new String(chars);   }//1.去除首尾以及单词之间多余空格 快慢指针public char[] removeExtraSpaces(char[] chars){int slow = 0;for(int fast = 0;fast < chars.length;fast++){if(chars[fast] != ' '){//此时不为空 说明指向下一个单词开头 但是slow要留出单词空  特殊情况 开头多个空格 slow不赋值 直接while if(slow != 0){chars[slow++] = ' ';}while(fast < chars.length && chars[fast] != ' '){chars[slow++] = chars[fast++];}//长度范围内退出while说明fast=空 到了单词末尾 最后slow指向新数组的末尾+1 = 长度}}char[] newChars = new char[slow];System.arraycopy(chars, 0, newChars, 0, slow);return newChars;}// //2.反转整个字符串public void reverse(char[] chars, int left, int right){if (right >= chars.length) {System.out.println("set a wrong right");return;}while(left < right){char c = chars[left];chars[left] = chars[right];chars[right] = c;left++;right--;}}//3.反转单词public void reverseEachWord(char[] chars){int start = 0;for(int end = 0;end <= chars.length;end++){if (end == chars.length || chars[end] == ' '){//每次到单词间空格 或者字符串末尾 就反转 (字符串末尾没有空格reverse(chars, start, end - 1);start = end + 1;}}}
}

三、总结

1.难点:不会处理单词之间的空格,因为只保留一个,其余去除;

2.java中另外三种解法不是很明白;

3.去除空格的代码思路好难想。。

http://www.dtcms.com/wzjs/138266.html

相关文章:

  • 淘宝客网站模板培训教育机构
  • 北京网站seo报价网站排名seo
  • 烟台专业做网站公司有哪些河北软文搜索引擎推广公司
  • 怎样做永久网站二维码如何进行网站的宣传和推广
  • 网站建设使用情况搜索引擎推广法
  • 建网站哪家好案例网站视频
  • 单仁做的网站推广之家官网
  • 网站开发验收申请报告seod的中文意思
  • 南充做网站的seo优化推广流程
  • 北京市网站维护公司web网页制作成品免费
  • 电话推销网站建设可以推广的软件有哪些
  • 在iis上部署的网站本机无法浏览解决方法关键词优化好
  • .net网站开发是什么对象开发上海网站建设关键词排名
  • 服务外包有哪些信息流优化师证书
  • 贸易网站有哪些网站的推广方法有哪些
  • 自己做网站怎么挣钱上海专业优化排名工具
  • 抓取的网站如何做seo廊坊seo管理
  • 网页设计素材加代码台州seo快速排名
  • 云南省住房和建设执业资格注册中心网站青岛网站建设与设计制作
  • 企业网站优化徽号liu7yin出本词效果抖快均可做a7百度关键字搜索量查询
  • 怎么样做钓鱼网站公司网站域名续费一年多少钱
  • 做pc端网站包括哪些泉州seo排名扣费
  • 果洛电子商务网站建设seo点击排名软件哪家好
  • 南昌网站搭建公司 赣ICP精准营销的案例
  • 泉州公司网站建设seo是哪里
  • 甘肃肃第八建设集团网站seo营销课程培训
  • 旅游网站建设流程步骤百度免费优化
  • 分站城市网站如何做seo网站推广应该怎么做?
  • 武汉做网站公司有哪些网站如何让百度收录自己的网站
  • 做网站优化推广推广普通话内容