遥不可及的AK 2024-03-10 21:09 采纳率: 90%
浏览 1
已结题

java学习中的问题

总觉得能写出来啊,有思路又没思路的感觉太难受了,55555555555

img

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-10 21:10
    关注

    引自免费微信小程序:皆我百晓生

    在Java中解决这个问题,你需要编写一个程序来检查输入的字符串是否满足猫叫声的要求。下面是一个详细的解决方案,包括完整的Java代码:

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            
            // 读取字符串长度
            int n = scanner.nextInt();
            scanner.nextLine(); // 消耗换行符
            
            // 读取字符串s
            String s = scanner.nextLine();
            
            // 检查字符串是否满足猫叫声的条件
            if (isValidMeow(s)) {
                System.out.println("YES");
            } else {
                System.out.println("NO");
            }
            
            scanner.close();
        }
    
        private static boolean isValidMeow(String s) {
            if (s.length() < 4 || !s.startsWith("m") && !s.startsWith("M")) {
                return false;
            }
            
            int mIndex = 0;
            int eIndex = 1;
            int oIndex = -1;
            int wIndex = -1;
    
            // 查找'e'序列
            while (eIndex < s.length() && (s.charAt(eIndex) == 'e' || s.charAt(eIndex) == 'E')) {
                eIndex++;
            }
            
            // 如果'e'序列不存在或者'e'序列后面没有字符了,则不是猫叫声
            if (eIndex == 1 || eIndex == s.length()) {
                return false;
            }
            
            // 查找'o'序列
            oIndex = eIndex;
            while (oIndex < s.length() && (s.charAt(oIndex) == 'o' || s.charAt(oIndex) == 'O')) {
                oIndex++;
            }
            
            // 如果'o'序列不存在或者'o'序列后面没有字符了,则不是猫叫声
            if (oIndex == eIndex || oIndex == s.length()) {
                return false;
            }
            
            // 查找'w'序列
            wIndex = oIndex;
            while (wIndex < s.length() && (s.charAt(wIndex) == 'w' || s.charAt(wIndex) == 'W')) {
                wIndex++;
            }
            
            // 如果整个字符串都被成功地分为了'm'、'e'、'o'和'w'序列,并且最后一个字符是'w'或'W'
            return wIndex == s.length() && (oIndex != wIndex);
        }
    }
    

    这段Java代码首先读取用户输入的声音字符串长度和内容,然后调用isValidMeow方法验证字符串是否符合猫叫声的规则。这个方法通过遍历字符串并检查每个部分是否只包含相应的字符来实现判断逻辑。最后根据验证结果输出"YES"或"NO"。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月18日
  • 已采纳回答 3月10日
  • 创建了问题 3月10日

悬赏问题

  • ¥66 换电脑后应用程序报错
  • ¥50 array数据同步问题
  • ¥15 pic16F877a单片机的外部触发中断程序仿真失效
  • ¥15 Matlab插值拟合差分微分规划图论
  • ¥15 keil5 target not created
  • ¥15 C/C++数据与算法请教
  • ¥15 怎么找志同道合的伙伴
  • ¥20 如何让程序ab.eXe自已删除干净硬盘里的本文件自己的ab.eXe文件
  • ¥50 爬虫预算充足,跪巨佬
  • ¥15 滑块验证码拖动问题悬赏