当前位置:首页 » 《随便一记》 » 正文

牛客网刷题——JAVA

13 人参与  2022年08月30日 08:21  分类 : 《随便一记》  评论

点击全文阅读


在这里插入图片描述

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

文章目录

一、字符串中的第一个唯一字符二、字符串最后一个单词的长度三、字符串中的单词数四、转换成小写字母五、验证回文串

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

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

public static void main(String[] args) {        int i = firstUniqChar("nowcoder");        System.out.println(i);    }    public static int firstUniqChar(String s) {        int[] count = new int[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:

public  static void  main(String [] args) throws Exception{       Scanner scanner = new Scanner(System.in);        String s = scanner.nextLine();        String[] strings = s.split(" ");        System.out.println(strings[strings.length-1].length());     }

方法2:

public  static void  main(String [] args) throws Exception{        Scanner scanner = new Scanner(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);     }

三、字符串中的单词数

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

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

public int countSegments(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:

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

方法2:

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

五、验证回文串

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

public static boolean isTrue(char c) {        if((c >= 'a' && c <= 'z')||(c >= '0' && c <= '9')) {            return true;        }else {            return false;        }    }    public static boolean isPalindrome(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)) {                return false;            }else {                right--;                left++;            }        }        return true;    }

方法2:

public static boolean isPalindrome(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)) {                return false;            }else {                left++;                right--;            }        }        return true;    }

点击全文阅读


本文链接:http://zhangshiyu.com/post/44797.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1