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

网站建设 seo优化做国际网站阿里巴巴

网站建设 seo优化,做国际网站阿里巴巴,品物设计集团,wordpress资源站模板字符串 简介[简单] 344. 反转字符串[简单] 541. 反转字符串 II[中等] 151. 反转字符串中的单词 简介 记录一下自己刷题的历程以及代码。写题过程中参考了 代码随想录。会附上一些个人的思路#xff0c;如果有错误#xff0c;可以在评论区提醒一下。 [简单] 344. 反转字符串… 字符串 简介[简单] 344. 反转字符串[简单] 541. 反转字符串 II[中等] 151. 反转字符串中的单词 简介 记录一下自己刷题的历程以及代码。写题过程中参考了 代码随想录。会附上一些个人的思路如果有错误可以在评论区提醒一下。 [简单] 344. 反转字符串 原题链接 方法① class Solution {public void reverseString(char[] s) {for(int i 0; i s.length / 2; i){swap(s, i,s.length - 1 - i);}}private void swap(char[] s, int i, int j){char temp s[i];s[i] s[j];s[j] temp;} }方法② class Solution {public void reverseString(char[] s) {int i 0;while(i s.length - 1 - i){swap(s, i,s.length - 1 - i);i;}}private void swap(char[] s, int i, int j){char temp s[i];s[i] s[j];s[j] temp;} }[简单] 541. 反转字符串 II 原题链接 一开始想到比较差的方法就是给到一个新的StringBuilder然后按照结果的顺序依次再加入到StringBuilder中去时间复杂度比较高因为对那一部分不需要转置的字符也做了处理。 public String reverseStr(String s, int k) {StringBuilder sb new StringBuilder(s.length());int over -1; //标记已经完成处理的下标for (int i 0; i s.length(); i) {if (i - over 2 * k) {for (int j over k; j over; j--) {sb.append(s.charAt(j));}for (int j over k 1; j over 2 * k; j) {sb.append(s.charAt(j));}over over 2 * k;}}if(s.length() - 1 - over k){for (int j s.length() - 1; j over; j--) {sb.append(s.charAt(j));}}else{for (int j over k; j over; j--) {sb.append(s.charAt(j));}for (int j over k 1; j s.length(); j) {sb.append(s.charAt(j));}}return sb.toString();}这里首先提取了反转部分的代码看起来更清晰同时也避开了对不需要转换的那一部分做处理的时间复杂度效率更高 class Solution {public String reverseStr(String s, int k) {char[] c s.toCharArray();int i 2 * k - 1;int n s.length();for (; i n; i 2 * k) {reverse(c, i-2*k1, i-k);}if(i-2*k1 n) {reverse(c, i - 2 * k 1, n - 1 i - k ? n - 1 : i - k);}return new String(c);}private void reverse(char[] c, int left, int right){while(left right){char temp c[left];c[left] c[right];c[right] temp;left;right--;}} }[中等] 151. 反转字符串中的单词 原题链接 总共分三步删除空格整体反转单词反转。 deleteSpace()删除空格先是删除后置空格删除前置空格再删除中间的空格因为中间的空格需要保留一个与删除前置后置逻辑上不同 使用StringBuilder类的话需要注意 ①delete函数的右边界end对应下标并不会被删除比如sb.delete(5,8)删除的是5,6,7下标对应元素。 ②先删除前导空格的话会导致整个字符串的所有下标都左移不利于判断先删除后置空格则没有这个问题。 //先删除后置再删除前置 if(r 1 s.length() - 1) sb sb.delete(r 1, s.length()); //删除后置空格 if(l 0) sb sb.delete(0, l); //删除前导空格③StringBuilder使用一个String类型构造的时候分配的空间不完全是String本身的长度所以在delete操作中删除右边空格的end边界应该是String的长度边界而不是StringBuilder的。 class Solution {public String reverseWords(String s) {StringBuilder sb deleteSpace(s);sb reverse(sb, 0, sb.length()-1);int start 0;int i 0;for(; i sb.length(); i){if(sb.charAt(i) ){sb reverse(sb, start, i - 1);start i 1;}}sb reverse(sb, start, i - 1);return sb.toString();}private StringBuilder deleteSpace(String s){int l 0;int r s.length() - 1;while(s.charAt(l) ) l;while(s.charAt(r) ) r--;StringBuilder sb new StringBuilder(s);if(r 1 s.length() - 1) sb sb.delete(r 1, s.length()); //删除后置空格if(l 0) sb sb.delete(0, l); //删除前导空格int i 0;while(i sb.length()){if(sb.charAt(i) ) {int start i;while (sb.charAt(i) ) i;int end i;if (end - start 0) {sb sb.delete(start, end);i start;}}i;}return sb;}private StringBuilder reverse(StringBuilder sb, int l, int r){while(l r){char temp sb.charAt(l);sb.setCharAt(l, sb.charAt(r));sb.setCharAt(r, temp);l;r--;}return sb;} }
http://www.yutouwan.com/news/33001/

相关文章:

  • 经典企业网站模板被代运营骗了怎么追回
  • 网站建设預算苏州大型网站设计公司
  • 电脑怎样做幻灯片的网站国外 优秀网站设计
  • 网站建设特定开发如何写一个可以做报价计算的网站
  • 网站 php .net网站免费申请建站
  • 做视频网站有什么五金外贸网站模板
  • 专业餐饮网站建设wordpress文章点赞
  • 做资源网站盈利点温州网站建设方案表
  • vs2015做网站国家信用信息公示系统查询入口
  • 网站建设流程案例网站以个人名义备案
  • 郑州七彩网站建设公司网站锚文本与标签
  • 酒店预订网站模板专业网页制作地址
  • 音乐盒网站源码wordpress免费托管
  • 自己怎么做云购网站吗软件外包专业就业方向
  • 网站建设免费免代码做机电预算的网站
  • php做网站难吗网站还难做啊
  • 常州网站推广多少钱广州市网站建站
  • wap手机网站建设方案.net做网站c#
  • 兰州网站分类导航16岁做分期网站
  • 个性个人网站模板聚名网域名注册
  • 网站游戏正规网站建设电商培训内容
  • 网站销售怎么做的wordpress评论嵌套样式修改
  • 做行程规划的旅行网站个人博客有哪些网站
  • 优秀电商设计网站小米新手机发布
  • 零基础源码建设网站jsp网站开发与设计摘要
  • 网页设计与网站建设作业答案环球贸易网站
  • 网站建设分金手指专业一网页设计的目的
  • 档案馆网站安全建设网站开发 jsp开发工具
  • 古塔网站建设wordpress产品详情页按钮
  • 形象设计公司网站建设方案书建设网站怎么搞