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

柳州网站建设哪家公司好专业购物网站建设报价

柳州网站建设哪家公司好,专业购物网站建设报价,梵客官网,做直播的在相亲网站交友给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:输入字符串 s中可能会存在前导空格、尾随空格…

给你一个字符串 s ,请你反转字符串中 单词 的顺序。

单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。

返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。

注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。

输入:s = "the sky is blue"
输出:
"blue is sky the"

       看到图片中的操作,我觉得我们的第一印象应该是先用Stirng()中的方法tirm()将字符串两边的空白字符给去掉,然后再用toCharArray()方法将字符转换为char数组,然后再倒叙遍历数组填充到一个新的字符串中去,这道题就结束了,可是真的是这样么?

public String reverseWords(String s) {if(s.length()==0){return "";}//去掉两边的空格s=s.trim();//trim函数需要返回一个新的字符串,这里千万别忘记//根据“”进行分割String[] str=s.split(" ");String s1="";for (int i = str.length-1; i>=0; i--) {if(i==0){s1+=str[i];}else{s1+=str[i]+" ";}}s1=s1.trim();return s1;}

       原来这个题目中测试案例字符串中中间间隔的不一定只有一个空字符串,甚至有多个空字符串,所以我们就要对正则表达式中的规则进行一点改变

String[] str=s.split("\\s+");//匹配多个空白字符

 过程是痛苦的但是结局确实好的

接下来给大家介绍一种比较高效的方法解决本题(双指针)

       这时候有很多人就会要问了?如果遍历字符串的话,每个指针只能指向一个字符,反转的话只能使一个字符进行翻转,怎么样才可以做到对整个单词进行翻转呢?一个指针当然只可以指向一个字符了,但是两个指针就可以确定一个单词,我们可以寻找空格的位置去确定我们单词的位置

 我们做的前提得是两边没有空格的字符串,所以我们首先用String类中的trim()函数进行去除

 //去掉两边的空格String s1=s.trim();

在操作字符串的时候,我们经常将String类型转换为StringBuilder类型进行字符串的操作

StringBuilder res=new StringBuilder();

       因为我们需要进行对原字符串进行反转,干脆我们一开始就从最后面开始,这样可以省去一次翻转的时间

int i=s1.length()-1;
int j=i;
while(i>=0){...}

因为我们的字符串两边没有空格,所以我们依靠中间两个单词之间的空格来确定单词的界限

while(i>=0&&s1.charAt(i)!=' '){i--;}

       因为我们要将这个字符串截取出来,将其加入到StringBuilder中,substring(start,end)函数,是一个左闭右开的取值范围

res.append(s1.substring(i+1,j+1)+" ");

如果两个单词间隔许多空格的话,我们需要跳过这些空格,去寻找下一个单词的末尾字符

 while(i>=0&&s1.charAt(i)==' '){i--;}

同步j指针,说明找到了一个新的单词,重复上面的步骤

j=i;

 源代码如下:

 public String reverseWords(String s) {if(s.length()==0){return "";}//去掉两边的空格String s1=s.trim();StringBuilder res=new StringBuilder();int i=s1.length()-1;int j=i;while(i>=0){while(i>=0&&s1.charAt(i)!=' ')i--;res.append(s1.substring(i+1,j+1)+" ");while(i>=0&&s1.charAt(i)==' ')i--;j=i;}return res.toString().trim();}

http://www.yayakq.cn/news/66555/

相关文章:

  • 建设部网站投诉核查企业名单什么是网络营销的重要组成部分
  • 变更备案网站可以访问吗较好的网站设计师培训学校
  • 建设公司营销网站网站优化师招聘
  • wordpress在线扫描北京优化公司排行
  • 网站建设费用推荐网络专业网站seo服务商
  • 上海建站网站建设智加设计
  • 济南手机网站建设报价有经验的合肥网站建设
  • 云智网站建设公司怎么上百度搜索
  • 东莞网站关键词优化哪家好中国核工业第五建设有限公司成都分公司
  • html网站开发开题报告范文wordpress微信链接
  • 做响应式网站设计师需要做什么自己网站可以加标志吗
  • 做彩票网站违法的吗网站续费有什么作用
  • 天津市建设工程管理总队网站wordpress 医疗
  • 2017年网站外链怎么做自己建的网站如何百度搜索
  • 网站排名总是不稳定wordpress示例
  • 食品公司网站设计项目策划行业网站
  • 龙江人社app二维码图片网站seo综合公司
  • 网站长尾关键词如何登录国外购物网站
  • 网站建设与维护流程图做系统的网站
  • 南宁手机平台网站建设人力招聘网站建设目的
  • 延庆青岛网站建设做网站需要买网址吗
  • 网站开发是什么部门百度广告联盟
  • 合肥市网站建设公司淄博建设公司网站
  • 中英双语外贸网站源码西部数码网站管理助手 绑定域名
  • linux服务器怎么做网站本地app制作公司电话
  • 网站推广优化排名seo三星网上商城怎么查物流
  • 网站建设中面包屑导航的特点怎么做公司的网站
  • 龙华住房和建设局网站官网做图专业软件下载网站
  • 东光有做网站的吗网站开发流程及顺序
  • 做货代网站外贸网站建设定制