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

网站如何留住客户长沙旅游商贸职业技术学院

网站如何留住客户,长沙旅游商贸职业技术学院,漯河企业网站建设,python做网站性能题号151 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 我的解法 暴力解法,先将String转为字…

题号151

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

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

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

我的解法

暴力解法,先将String转为字符数组,遍历找出空格所在地,然后再倒着将其加入,然后在这个过程中加上各种条件限制

class Solution {public String reverseWords(String s) {char[]arr=s.toCharArray();int count=0;ArrayList<Integer> list=new ArrayList<>();if(arr.length==1)return s;for(int i=0;i<arr.length-1;i++){if(arr[0]!=' '&&count==0){list.add(-1);count++;}if(arr[i]==' '&&arr[i+1]!=' ') {list.add(i);count++;}}ArrayList<String> clist=new ArrayList<>();for(int i=count-1;i>=0;i--) {int j = list.get(i);while (j+1<arr.length&&arr[j+1] != ' ') {clist.add(String.valueOf(arr[j+ 1]));j++;}if(i!=0)clist.add(" ");}String ans="";for(String str:clist){ans+=str;}return ans;}
}

另解:

class Solution {public String reverseWords(String s) {//先删除空格StringBuilder str=delSpace(s);//再反转字符串str.reverse();//再反转子串myreserve(str);return str.toString();//转为string类返回}public  StringBuilder delSpace (String s){int left = 0, right = s.length() - 1;// 去掉字符串开头的空白字符while (left <= right && s.charAt(left) == ' ') {++left;}// 去掉字符串末尾的空白字符while (left <= right && s.charAt(right) == ' ') {--right;}// 将字符串间多余的空白字符去除StringBuilder sb = new StringBuilder();while (left <= right) {char c = s.charAt(left);if (c != ' ') {sb.append(c);} else if (sb.charAt(sb.length() - 1) != ' ')//如果当前字符是空格,且sb中前一个字符不是空格则加入{sb.append(c);}++left;}return sb;}public StringBuilder myreserve(StringBuilder s){int i=0;int j=0;while(j<s.length()){if(s.charAt(j)!=' ')j++;else {myreserve1(s, i, j - 1);j++;i = j;}}//反转最后一个单词myreserve1(s,i,j-1);return s;}public StringBuilder myreserve1(StringBuilder s,int a,int b){int slow=a;int fast=b;while(slow<fast){//反转操作(首尾交换)char tmp=s.charAt(slow);s.setCharAt(slow,s.charAt(fast));s.setCharAt(fast,tmp);slow++;fast--;}return s;}
}

思路:先删除空格,再整个反转,最后逐一反转

再另解

class Solution {public String reverseWords(String s) {int left = 0, right = s.length() - 1;// 去掉字符串开头的空白字符while (left <= right && s.charAt(left) == ' ') {++left;}// 去掉字符串末尾的空白字符while (left <= right && s.charAt(right) == ' ') {--right;}Deque<String> d = new ArrayDeque<String>();StringBuilder word = new StringBuilder();while (left <= right) {char c = s.charAt(left);if ((word.length() != 0) && (c == ' ')) {// 将单词 push 到队列的头部d.offerFirst(word.toString());word.setLength(0);} else if (c != ' ') {word.append(c);}++left;}d.offerFirst(word.toString());return String.join(" ", d);}
}作者:力扣官方题解
链接:https://leetcode.cn/problems/reverse-words-in-a-string/solutions/194450/fan-zhuan-zi-fu-chuan-li-de-dan-ci-by-leetcode-sol/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

用一个双端队列,将字符串依次压入队列的头部即可

http://www.dtcms.com/a/530694.html

相关文章:

  • 网站建设实验周志与总结一般多少钱做一个网站
  • 网站建设商业计划书ai免费logo设计一键生成
  • 网站建设技术服务公司怎么建一个公司运营网站
  • 青海省公路建设管理局官方网站东莞常平做网站公司
  • 盐城建设局网站中小型电子商务网站
  • 游戏界面设计网站贵阳手机银行app下载
  • 做封面的免费网站网站的建设主题
  • 个人网站免费域名注册安徽省招投标中心官网
  • 江苏中星建设集团网站虚拟产品货源网站
  • 网站手机客户端在线制作网站设计制作费
  • 员工入职 在哪个网站做招工汕头市广州新业建设有限公司网站
  • 白云品牌型网站建设山东省和城乡建设厅网站
  • 艺客网站首页怎么设置网址
  • 商务网站建设与运营陕西省城乡建设学校网站
  • aspcms 网站栏目管理网络工程师都考什么
  • 优秀门户网站欣赏深圳网站建设亿联时代
  • 公司做网站哪里做个人软件网站域名
  • 网站产品详情用哪个软件做的wordpress加速之gzip
  • 如何在局域网中做网站衡水高端网站建设
  • 泰通建设集团网站手机网站开发教程pdf
  • 福清建设银行网站南昌科技学院是几本大学
  • 医院网站建设技术方案如何查询网站打开速度变慢
  • 如何建立学校网站python cms系统
  • 淮北网站开发公司哈尔滨网络科技公司网站
  • 网站开发安全文档静态网站挂马
  • 安防行业网站建设方案论坛网站建设软件
  • 企业电子商务网站建设设计目的新建html网站
  • 静态网站开发外文文献怎样登陆wordpress
  • 手机网站对企业用户的好处wordpress如何让导航栏浮动
  • 兰州房地产网站建设小说网站如何做书源