0


牛客网刷题——JAVA

在这里插入图片描述

个人主页:熬夜磕代码丶
作品专栏: java se
我变秃了,也变强了
给大家介绍一款程序员必备刷题平台——牛客网
点击注册一起刷题收获大厂offer吧
在这里插入图片描述

文章目录

一、字符串中的第一个唯一字符

给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。
在这里插入图片描述

publicstaticvoidmain(String[] args){int i =firstUniqChar("nowcoder");System.out.println(i);}publicstaticintfirstUniqChar(String s){int[] count =newint[26];for(int i =0; i <s.length(); i++){
            count[s.charAt(i)-'a']++;}for(int i =0; i < s.length(); i++){if(count[s.charAt(i)-'a']==1){return i;}}return-1;}

在这里插入图片描述

二、字符串最后一个单词的长度

计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
HJ1 字符串最后一个单词的长度
在这里插入图片描述
方法1:

publicstaticvoidmain(String[] args)throwsException{Scanner scanner =newScanner(System.in);String s = scanner.nextLine();String[] strings = s.split(" ");System.out.println(strings[strings.length-1].length());}

方法2:

publicstaticvoidmain(String[] args)throwsException{Scanner scanner =newScanner(System.in);String s = scanner.nextLine();int count =0;for(int i = s.length()-1; i >=0; i--){if(s.charAt(i)!=' '){
                count++;}else{break;}}System.out.println(count);}

三、字符串中的单词数

统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。

在这里插入图片描述
在这里插入图片描述

publicintcountSegments(String s){
        s +=' ';int count =0;for(int i=0; i<s.length()-1;i++){if(s.charAt(i)!=' '&&s.charAt(i+1)==' '){
                count++;}}return count;}

四、转换成小写字母

给你一个字符串 s ,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。
方法1:

publicStringtoLowerCase(String s){return s.toLowerCase();}

方法2:

publicStringtoLowerCase(String s){char[] ch = s.toCharArray();for(int i =0; i < ch.length; i++){
            ch[i]=Character.toLowerCase(s.charAt(i));}returnnewString(ch);}

五、验证回文串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
方法1:

publicstaticbooleanisTrue(char c){if((c >='a'&& c <='z')||(c >='0'&& c <='9')){returntrue;}else{returnfalse;}}publicstaticbooleanisPalindrome(String s){
        s = s.toLowerCase();int left =0;int right = s.length()-1;while(left < right){while(left < right &&!isTrue(s.charAt(left))){
                left++;}while(left < right &&!isTrue(s.charAt(right))){
                right--;}if(s.charAt(left)!= s.charAt(right)){returnfalse;}else{
                right--;
                left++;}}returntrue;}

方法2:

publicstaticbooleanisPalindrome(String s){
        s = s.toLowerCase();int left =0;int right = s.length()-1;while(left < right){while(left < right &&!Character.isLetterOrDigit(s.charAt(left))){
                left++;}while(left < right &&!Character.isLetterOrDigit(s.charAt(right))){
                right--;}if(s.charAt(left)!= s.charAt(right)){returnfalse;}else{
                left++;
                right--;}}returntrue;}

本文转载自: https://blog.csdn.net/buhuisuanfa/article/details/126307510
版权归原作者 熬夜磕代码丶 所有, 如有侵权,请联系我们删除。

“牛客网刷题&mdash;&mdash;JAVA”的评论:

还没有评论