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

一个企业可以做多个网站吗郑州seo服务公司

一个企业可以做多个网站吗,郑州seo服务公司,网站建设公司广告语 宣传语,如何制作网站前言: 此处练习对应博客文章:公主,王子,请点击​​​​​​​ 1.第一次只出现一次的字符 做题首先看清要求和提示: 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不…

 前言:

此处练习对应博客文章:公主,王子,请点击​​​​​​​

1.第一次只出现一次的字符

做题首先看清要求和提示:

给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。

提示:

  • 1 <= s.length <= 105
  • s 只包含小写字母

 这就要用到我们所学的字符串的知识了,我们可以通过String的常用方法chatAt,直接查找当前位置的字符。

接下来有两种思路,一种就是暴力求解,另外一种就是运用哈希的思想

暴力求解:
定义两个变量,i和j,i从0下标开始遍历,j从1下标开始遍历,当j遍历完之后,没有找到相同的,直接退出循环。如果找到相同的,则i++。如下图(这种方式极力不推荐,因为时间复杂度较大,我们说另一种方式)

哈希思想

 可以先,定义一个0到122的count数组。

由题目可知,s只包含小写字母,a的Ascii码值为97,可以将字符存在对应下标下面。

 通过字符对应的数组下标自增加1,做好标记。

 然后找到数组中为1,且第一次出现的字符。

1.1定义一个计数数组

下标0~96的空间无法利用,可以对他进行优化

 通过当前字符与‘a’相减,从而缩小数组范围

代码如下:

 int[] count = new int [26];

1.2.遍历字符串 记录次数

//遍历字符串,记录次数for(int i = 0;i < n;i++){count[s.charAt(i) - 'a']++;}

 

1.3.再次遍历字符串

这时不要遍历count数组,这个做法是错误的。

//再次遍历for(int i = 0;i < n;i++){if(count[s.charAt(i)-'a']==1)return i;}return -1;    

 跳出循环,没有只出现一次的字符,返回-1.

1.4 代码实例

 public static int firstUniqChar(String s) {//定义一个计数数组int[] chars = new int[26];//遍历字符串,记录次数for(int i = 0; i < s.length(); i++){chars[s.charAt(i) - 'a']++;}//再次遍历for (int i = 0; i < s.length(); i++) {if(chars[s.charAt(i) - 'a'] == 1)return i;}return -1;}

 

我们可以看到通过时间是6ms,但我觉得还有改进的空间。

于是进行了下列的改进:

1. 我直接求出字符串的长度,并通过ch接收,减少循环条件求字符串长度的时间

2.将定义数组放在后面,可以减少一毫秒的运算速度,这个原因,现在还不知道。zu

改进的代码如下:

    int ch = s.length();int[] count = new int [26];//遍历字符串,记录次数for(int i = 0;i < ch;i++){count[s.charAt(i) - 'a']++;}//再次遍历for(int i = 0;i < ch;i++){if(count[s.charAt(i)-'a']==1)return i;}return -1;                              }

 

2.最后一个单词的长度

题目:

计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)

 本题我采用三种方式来做,当然还有更多的方式可供大家探索。

2.1.第一种方式运用String常用方法split进行分割

通过split函数将原字符串分割为字符串数组。如下图示例:

 字符串数组最后一个元素即是原字符串的最后一个单词,直接输出其长度。

代码如下:

import java.util.Scanner;public class Main{public static void main(String[] args){//标准输入Scanner sc=new Scanner(System.in);//键盘输入字符串String str=sc.nextLine();//以空格分割为字符串数组String[] arr=str.split(" ");//字符串数组最后一个元素即是原字符串的最后一个单词,直接输出其长度System.out.println(arr[arr.length-1].length());}
}

  • 时间复杂度:字符串分割需要遍历整个字符串,所以时间复杂度为O(n)。
  • 空间复杂度:最坏情况下需要大小为n-1的字符串数组存储所有的单词,所以空间复杂度为O(n)。

2.2.第二种方法指针

 解题思路

  1. 定义一个指针变量。
  2. 从后往前遍历字符串,当遇到空格时,用指针记录位置信息,并终止循环。
  3. 总长度减去指针到开头一段的长度,即得到最后一个单词的长度。

代码实例:  

import java.util.Scanner;public class Main{public static void main(String[] args){//标准输入Scanner sc=new Scanner(System.in);//键盘输入字符串String str=sc.nextLine();//定义指针变量int index=-1;for(int i=s.length()-1;i>=0;i--){//从后往前第一个空格的位置if(s.charAt(i)==' '){index=i;break;}}//总长度减去指针到开头一段的长度,即得到最后一个单词的长度System.out.println(s.length()-index-1);}
}
  • 时间复杂度:最坏情况下遍历整个字符串,所以时间复杂度为O(n)。
  • 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)。

2.3 第三种方式,用lastlndexOf和substring方法

  解题思路

  1. 用lastlndexOf找最后一个空格出现的位置,将位置传给index
  2. 然后用substring方法,从index+1,截取到str字符串末尾
  3. 最后一个单词长度就为,截取的字符串ret的长度

 代码实例: 

public static void main(String[] args) {Scanner in = new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextInt());// 注意 while 处理多个 caseString str = in.nextLine();int index = str.lastIndexOf(" ");String ret = str.substring(index+1);System.out.println(ret.length());}

3.检查字符串是否为回文

3.1题目:

如果在将所有大写字符转换为小写字符并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。

字母和数字都属于字母数字字符

这题采用双指针的做法来做

3.2解题思路:

初始时,左右指针分别指向 字符串 的两侧,随后我们不断地将这两个指针相向移动,每次移动一步,并判断这两个指针指向的字符是否相同。当这两个指针相遇时,就说明 字符串 是回文串。

 

先判断条件,由题目可知。移除所有非字母数字字符,字母数字都属于字母数字字符

 if((ch >= 'a' && ch <= 'z')||(ch >= '0' && ch <= '9')){return false;}

 运用toLowerCase:方法将字符串转换为小写字母,以便在判断回文时不区分大小写。

 

3.3代码示例

public boolean isPalindrome(String s) {s = s.toLowerCase();int left =  0;int right = s.length()-1;while(left < right){while(left < right && isCharacterNum(s.charAt(left))){left ++;}while(left < right && isCharacterNum(s.charAt(right))){right --;}if(s.charAt(left)!= s.charAt(right)){return false;}else{left++;right--;}}return true; }private  boolean isCharacterNum(char ch){if((ch >= 'a' && ch <= 'z') ||(ch >= '0' && ch <= '9')){return false;}return true;}

通过以下两种方法,可以直接获取字母和数字

 

 优化代码如下:

public boolean isPalindrome(String s) {s = s.toLowerCase();int left =  0;int right = s.length()-1;while(left < right){while(left < right && isCharacterNum(s.charAt(left))){left ++;}while(left < right && isCharacterNum(s.charAt(right))){right --;}if(s.charAt(left)!= s.charAt(right)){return false;}else{left++;right--;}}return true; }private  boolean isCharacterNum(char ch){if(Character.isDigit(ch) || Character.isLetter(ch)){return false;}return true;}


文章转载自:
http://compensator.hkpn.cn
http://wardian.hkpn.cn
http://vernoleninsk.hkpn.cn
http://unrhythmic.hkpn.cn
http://wholesomely.hkpn.cn
http://smart.hkpn.cn
http://magnanimity.hkpn.cn
http://dextranase.hkpn.cn
http://inelegance.hkpn.cn
http://crudeness.hkpn.cn
http://dicotyledonous.hkpn.cn
http://ribbonwood.hkpn.cn
http://barbaric.hkpn.cn
http://parterre.hkpn.cn
http://dodecasyllable.hkpn.cn
http://glorified.hkpn.cn
http://pushcart.hkpn.cn
http://cricetid.hkpn.cn
http://brazil.hkpn.cn
http://multinational.hkpn.cn
http://ragingly.hkpn.cn
http://millet.hkpn.cn
http://battement.hkpn.cn
http://prevalent.hkpn.cn
http://tun.hkpn.cn
http://zoantharia.hkpn.cn
http://melomane.hkpn.cn
http://downsizing.hkpn.cn
http://eudemonic.hkpn.cn
http://drool.hkpn.cn
http://jeez.hkpn.cn
http://emir.hkpn.cn
http://halfheartedly.hkpn.cn
http://antimonous.hkpn.cn
http://atheoretical.hkpn.cn
http://leishmaniosis.hkpn.cn
http://pipa.hkpn.cn
http://downpress.hkpn.cn
http://discusser.hkpn.cn
http://touzle.hkpn.cn
http://squattage.hkpn.cn
http://wren.hkpn.cn
http://brownish.hkpn.cn
http://decretive.hkpn.cn
http://dichroiscopic.hkpn.cn
http://authentication.hkpn.cn
http://transmute.hkpn.cn
http://hove.hkpn.cn
http://minded.hkpn.cn
http://pickin.hkpn.cn
http://neuralgiform.hkpn.cn
http://horsecloth.hkpn.cn
http://tautog.hkpn.cn
http://fruitless.hkpn.cn
http://puccoon.hkpn.cn
http://busiest.hkpn.cn
http://beaverboard.hkpn.cn
http://nationwide.hkpn.cn
http://appraise.hkpn.cn
http://rheophyte.hkpn.cn
http://sobersides.hkpn.cn
http://scriptural.hkpn.cn
http://shoemaker.hkpn.cn
http://glacier.hkpn.cn
http://tolu.hkpn.cn
http://stairs.hkpn.cn
http://ammon.hkpn.cn
http://strongpoint.hkpn.cn
http://retral.hkpn.cn
http://zooful.hkpn.cn
http://abelmosk.hkpn.cn
http://amphoric.hkpn.cn
http://pyrographic.hkpn.cn
http://annularity.hkpn.cn
http://moistureless.hkpn.cn
http://pallet.hkpn.cn
http://univocal.hkpn.cn
http://cynwulf.hkpn.cn
http://tessular.hkpn.cn
http://diluvium.hkpn.cn
http://gambit.hkpn.cn
http://flaming.hkpn.cn
http://albertine.hkpn.cn
http://moochin.hkpn.cn
http://wedeln.hkpn.cn
http://milkweed.hkpn.cn
http://hmnzs.hkpn.cn
http://angiomatous.hkpn.cn
http://dymaxion.hkpn.cn
http://lionlike.hkpn.cn
http://forsooth.hkpn.cn
http://urolithiasis.hkpn.cn
http://unlimitedly.hkpn.cn
http://oppress.hkpn.cn
http://pentamer.hkpn.cn
http://empiristic.hkpn.cn
http://presupposition.hkpn.cn
http://andy.hkpn.cn
http://phonon.hkpn.cn
http://gametangium.hkpn.cn
http://www.hrbkazy.com/news/73372.html

相关文章:

  • 网页制作软件免费搜索引擎优化公司
  • 电子商务网站建设网上商城b2b平台运营模式
  • 网站设计工作流程怎么制作网页推广
  • 怎么制作网站登录长尾关键词挖掘词
  • 外网进入学校内局域网建设的网站济南seo整站优化价格
  • 网站维护费用一年多少长沙seo培训班
  • 手机企业网站怎么做点击排名优化
  • 北京高端品牌网站建设福州seo推广优化
  • 怎么做网站的寄生链接生成器在线制作
  • 福建泉州做网站公司哪家好seo排名点击
  • 济南本地网站建设优化算法
  • 用那个程序做网站收录好百度爱采购官网
  • 哪个网站做律师推广怎样做竞价推广
  • 企业网站首页设计原则技能培训有哪些科目
  • 做音箱木工网站班级优化大师app下载学生版
  • 都匀网站建设行业门户网站推广
  • 网站内容怎么选择品牌策划公司哪家好
  • 莱芜吧 莱芜贴吧seo网站优化培训要多少钱
  • 鞍山市城市建设管理局网站淘宝seo搜索优化工具
  • 做老师讲课视频的教育网站微信群拉人的营销方法
  • 专门做电视剧截图的网站网络推广策划案
  • 有没一些网站只做临床药学seo单页快速排名
  • 企业微信网站开发文档株洲seo快速排名
  • 网站后台的编辑器不显示网站搜索排名
  • 优秀网站建设官网关键字
  • 免费永久vps服务器信息流优化师面试常见问题
  • 公司网站建设重点内容小程序商城
  • 做网站时怎么插入视频百度竞价托管代运营
  • 手机网页无法打开因为reset南昌网优化seo公司
  • 如何做配送网站湛江今日头条新闻