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

十大那种直播软件seo网络优化专员是什么意思

十大那种直播软件,seo网络优化专员是什么意思,长沙网站开发微联,对于网站建设的描述344.反转字符串 建议: 本题是字符串基础题目,就是考察 reverse 函数的实现,同时也明确一下 平时刷题什么时候用 库函数,什么时候 不用库函数 题目链接/文章讲解/视频讲解:代码随想录 思路非常简单,两个指…

344.反转字符串

建议: 本题是字符串基础题目,就是考察 reverse 函数的实现,同时也明确一下 平时刷题什么时候用 库函数,什么时候 不用库函数

题目链接/文章讲解/视频讲解:代码随想录

思路非常简单,两个指针一个指向头一个指向尾巴, 对于字符串,我们定义两个指针(也可以说是索引下标),一个从字符串前面,一个从字符串后面,两个指针同时向中间移动,并交换元素。

class Solution {public void reverseString(char[] s) {int l = 0;int r = s.length - 1;while(l < r){char temp = s[l];s[l] = s[r];s[r] = temp;l++;r--;}}
}

当然,我们也可以用异或运算符进行操作,思路同样,但是在最后进行交换的时候不需要创建额外的空间,效率更高

class Solution {public void reverseString(char[] s) {int l = 0;int r = s.length - 1;while (l < r) {s[l] ^= s[r];  //构造 a ^ b 的结果,并放在 a 中s[r] ^= s[l];  //将 a ^ b 这一结果再 ^ b ,存入b中,此时 b = a, a = a ^ bs[l] ^= s[r];  //a ^ b 的结果再 ^ a ,存入 a 中,此时 b = a, a = b 完成交换l++;r--;}}
}

541. 反转字符串II

建议:本题又进阶了,自己先去独立做一做,然后在看题解,对代码技巧会有很深的体会。

题目链接/文章讲解/视频讲解:代码随想录

我们先理解一下题目意思,如图所示,在图中画了个字符串,令k=3,2k=6,我们将字符串的2k范围内的前k位进行翻转,然后再从2k+1的地方进行上述操作,如果长度<k,我们就不变,途中剩下gh均<k,所以我们需要反转。

其实在遍历字符串的过程中,只要让 i += (2 * k),i 每次移动 2 * k 就可以了,然后判断是否需要有反转的区间。

因为要找的也就是每2 * k 区间的起点,这样写,程序会高效很多。

在正常找到 2k范围的时候,end是start+k-1的位置,如果不足k的时候,依然进行翻转,此时end索引是长度-1

class Solution {public String reverseStr(String s, int k) {char[] ch = s.toCharArray();for(int i = 0; i < ch.length; i += 2 * k){int start = i;//这里是判断尾数够不够k个来取决end指针的位置int end = Math.min(ch.length - 1, start + k - 1);//用异或运算反转 while(start < end){ch[start] ^= ch[end];ch[end] ^= ch[start];ch[start] ^= ch[end];start++;end--;}}return new String(ch);}
}

当然我们也可以用最基础的temp完成交换操作

class Solution {public String reverseStr(String s, int k) {char[] ch = s.toCharArray();for(int i = 0;i < ch.length;i += 2 * k){int start = i;// 判断尾数够不够k个来取决end指针的位置int end = Math.min(ch.length - 1,start + k - 1);while(start < end){char temp = ch[start];ch[start] = ch[end];ch[end] = temp;start++;end--;}}return new String(ch);}
}

卡码网:54.替换数字

建议:对于线性数据结构,填充或者删除,后序处理会高效的多。好好体会一下。

题目链接/文章讲解:替换数字

 

首先扩充数组到每个数字字符替换成 "number" 之后的大小。

例如 字符串 "a5b" 的长度为3,那么 将 数字字符变成字符串 "number" 之后的字符串为 "anumberb" 长度为 8。

然后从后向前替换数字字符,也就是双指针法,过程如下:i指向新长度的末尾,j指向旧长度的末尾。

类似这样,但是我们可以思考一个问题,为什么我们要从后往前去处理而不是从前往后呢,因为从前往后的话,我们要处理更多数组的移动,比如a1b2c3,从前处理的话后面所有的地方都要移动,都会改变,所以我们从后向前处理。,我们来看代码

先对数组进行扩容,在遍历字符串的时候出现数字字符就将长度+5处理,然后根据扩容的数组长度去new一个新数组,再将输入的字符读取进创建新数组对应的位置,再从后往前进行遍历,,碰到数字就从最后一位开始往前遍历,没碰到就把字符赋值给对应的位置。

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String s = sc.next();int len = s.length();for (int i = 0; i < s.length(); i++) {if (s.charAt(i) >= 0 && s.charAt(i) <= '9') {len += 5;}}char[] ret = new char[len];for (int i = 0; i < s.length(); i++) {ret[i] = s.charAt(i);}for (int i = s.length() - 1, j = len - 1; i >= 0; i--) {if ('0' <= ret[i] && ret[i] <= '9') {ret[j--] = 'r';ret[j--] = 'e';ret[j--] = 'b';ret[j--] = 'm';ret[j--] = 'u';ret[j--] = 'n';} else {ret[j--] = ret[i];}}System.out.println(ret);}
}

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

相关文章:

  • 东莞外贸建站及推广电商的推广方式有哪些
  • 宁波网站推广平台咨询网络营销推广专家
  • 怎么在网站上做按钮百度爱采购推广怎么入驻
  • 怎么建个人公司网站怎么自己创建网站
  • 萍乡网站建设哪家公司好直通车推广计划方案
  • 公司网站如何推广国内最好的seo培训
  • 用内网穿透做网站可以被收录吗怎么做好网站方式推广
  • 做美图网站有哪些东西吗免费推广引流平台
  • 武汉平价做网站成都网站优化平台
  • 如何让客户主动找你做网站2023年新冠疫情最新消息
  • 群辉nas 做网站青岛网站排名公司
  • wordpress托管网站四川seo快速排名
  • 如何建立独立站宁波seo外包平台
  • 克旗网站制作5229998最佳磁力搜索天堂
  • 搬家网站自适应云搜索引擎
  • 做网站代理属于开设赌场罪吗百度企业查询
  • 网站建设收费价格网站宣传的方法有哪些
  • 北京网站改版费用企业建站模板
  • 有什么可靠网站做建材代理的吗千锋教育培训怎么样
  • 惠州手机模板建站seo搜索优化专员招聘
  • 网站做聚合是啥意思互联网营销策划方案
  • 网站建设中的服务器搭建方式域名权重查询工具
  • 锦州网站制作公司广东省自然资源厅
  • 梧州网站设计推荐永久免费的网站服务器有哪些软件
  • 便宜香港网站空间企业qq多少钱一年
  • 有网站后台模板如何做数据库怎么发布信息到百度
  • 网站做文献格式真正免费的网站建站平台
  • 百度云做网站如何获取热搜关键词
  • 胶州为企业做网站的公司2022最新永久地域网名
  • 开网站做一个交易所怎么做口碑最好的it培训机构