当前位置:首页 > 技术 > 后端 > 正文内容

牛客网刷题——JAVA

anan7个月前 (08-26)后端697

个人主页:熬夜磕代码丶
作品专栏: 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;
    }
,https://blog.csdn.net/buhuisuanfa/article/details/126307510
打赏
版权声明:所有来源为第三方内容,若本站收录的文章无意侵犯了贵司版权,请给下面邮箱地址来信,我们会及时处理和回复,谢谢。

管理员邮箱:42004990@qq.com

微信公众号

分享给朋友:

相关文章

CSDN绑定GitHub详细步骤,完成后可以得勋章哦,亲们国庆假期愉快!

CSDN绑定GitHub详细步骤,完成后可以得勋章哦,亲们国庆假期愉快!

目录 前言 具体步骤 跋文 前言       今天教大家把CSDN绑定GitHub,绑定成功可以领取勋...

Java(高阶)——进程与线程1.0

Java(高阶)——进程与线程1.0

进程与线程 进程 线程 "进程"与"线程"之间的联系与区别 时间片 并发和并行 内核态和用户态 进程中的上下文 进程状态 Java线程之间的状态转化...

️花了一天,肝了一套RockeMQ分布式消息队列视频教程,保证你一天掌握,第二天就上手开搞!

️花了一天,肝了一套RockeMQ分布式消息队列视频教程,保证你一天掌握,第二天就上手开搞!

大家好,我是锋哥,我是一名鼎鼎小名的10年Java老湿; 因为没有钱做推广,所以只能靠免费课程宣传,然后你懂的… 最近花了一天时间,撸了个RocketMQ分布式消息队列实战课程视频教程,免费分享给...

室友上个厕所的时间我居然学会了包装类?

室友上个厕所的时间我居然学会了包装类?

  博客主页​​​​​​小吴_小吴有想法_CSDN博客-笔记,leetcode,java领域博主  欢迎关注点赞收藏和留言 &nb...

普歌-逆越团队:Java集合中的Map接口(详细版)

Map接口 Map集合概述 HashMap集合 HashTable集合(不是Map的子类)...

JAVA初窥-DAY08

JAVA初窥-DAY08

JAVA初窥-DAY08 面向过程与面向对象 实例化及调用普通方法和普通成员变量 静态成员方法与静态成员变量的调用 封装 构造方法...