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

【力扣】824.山羊拉丁文

问题描述

思路解析

  • 首先把字符串通过空格分隔开来,用一个字符串数组来接收。
  • 因为要经常加上字符,所以使用 StringBuilder ,最后再进行转化
  • 然后检验首字母是否为元音,因为元音字母加上其大小写比较多,所以用一个字符串来存储,然后判断首字母是否在元音字符串中
    • 如果在,则直接加上 ma
    • 如果不在,则需要从第2个字符开始截取到最后面,再加上第一个字符,然后加上ma
      • 因此可以使用  String  substring(i),会返回一个新的字符串,从传入字符串的第i个位置开始到结尾
  • 首字母是否元音处理完之后,再把序号个数的a加上
  • 最后进行转化成字符返回
    • 将字符串数组转化为字符,可以使用 join()
    • 使用 String.join()

      这是最简单和推荐的方式,它可以直接通过静态方法String.join()来实现,该方法接收一个分隔符和字符串数组作为参数。

代码

 

class Solution {
    private static final String VOWELS = "aeiouAEIOU";
    public String toGoatLatin(String sentence) {

        //以空格的形式分隔开
        String[] list=sentence.split(" ");
        int len=list.length;
        
        for(int i=0;i<len;i++){
            char temp_char=list[i].charAt(0);
            StringBuilder sb=new StringBuilder();

            if (isVowel(temp_char)) {
                sb.append(list[i]+"ma");
            }
            else{
                //substring(i)返回一个新的字符串,从该字符串的第i处开始到结尾
                //然后加上最开始的字符 和 ma
                sb.append(list[i].substring(1)+list[i].charAt(0)+"ma");
            }
            //添加序列后面的a
            for(int j=0;j<i+1;j++){
                sb.append('a');
            }
            //重新存入进去
            list[i]= sb.toString();
        }
        // 接收一个分隔符和字符串数组,将其转换为字符串
        String result= String.join(" ",list);
        return result;
    }

    private static boolean isVowel(char c) {
        return VOWELS.indexOf(c) >= 0;
    }
}


http://www.kler.cn/a/429732.html

相关文章:

  • 【微服务】面试题 5、分布式系统理论:CAP 与 BASE 详解
  • Leetcode - 周赛431
  • ElasticSearch在Windows环境搭建测试
  • WINFORM - DevExpress -> DevExpress总结[安装、案例]
  • Elasticsearch入门学习
  • 计算机网络 —— 网络编程(TCP)
  • 常用环境部署(二十四)——Docker部署开源物联网平台Thingsboard
  • 力扣每日一题 - 1812. 判断国际象棋棋盘中一个格子的颜色
  • 算法(三)——贪心算法
  • java.lang.IllegalStateException: Error processing condition on org.springframework.boot.autoconfigur
  • 双色Hanoi塔问题(hanoi)
  • OpenAI 推出满血版 o1和 ChatGPT Pro,AI 竞争再掀高潮
  • Redis性能优化18招
  • 鸿蒙Next学习-监听指定页面显示/页面生命周期
  • OpenGL给矩形贴上纹理
  • 解决vscode 通过GoInstallUpdate Tools命令安装失败的问题
  • C# 抽奖程序winform示例
  • Keil5的Debug基础使用方式
  • TimeXplusplus——提高时间序列数据的可解释性,避免琐解和分布偏移问题的深度学习可解释性的框架
  • 12.06 深度学习-预训练
  • Linux下网卡实现NAT转发
  • flink-connector-mysql-cdc:03 mysql-cdc常见问题汇总
  • 智能指针中的share_ptr(共享智能指针)
  • 使用ffmpeg将视频与字幕合并为一个文件并将视频拼接
  • 永磁同步电机负载估计--线性扩张状态观测器
  • 分离轴定理检测两个凸多边形是否相交