题目:824.山羊拉丁文

该文章介绍了一种解题方法,用于处理LeetCode上的824题——将输入的句子按照GoatLatin规则进行翻译。代码实现中,首先遍历字符串按单词处理,然后修改每个单词首字母并添加后缀,最后组合成新的句子。注意点在于处理非字母字符以及首字母是否为元音。
摘要由CSDN通过智能技术生成

题目来源:

        leetcode题目,网址:824. 山羊拉丁文 - 力扣(LeetCode)

解题思路:

       遍历字符串,以非字母字符为一个单词结束的标记,按要求将单词逐个处理即可。

解题代码:

class Solution {
    public String toGoatLatin(String sentence) {
        StringBuffer strb=new StringBuffer();
        StringBuffer word=new StringBuffer();
        char fir='\u0000';
        int wordNum=1;
        for(int i=0;i<sentence.length();i++){
            char temp=sentence.charAt(i);
            if(Character.isLetter(temp)){
                if(word.length()==0 && fir=='\u0000' ){
                    fir=temp;
                }else{
                    word.append(temp);
                }
            }else{
                if(word.length()==0 && fir=='\u0000'){
                    strb.append(temp);
                }else{
                    word=modify(word,fir,wordNum);
                    strb.append(word);
                    strb.append(temp);
                    word=new StringBuffer();
                    fir='\u0000';
                    wordNum++;
                }
            }
        }
        if(word.length()!=0 || fir!='\u0000'){
            word=modify(word,fir,wordNum);
            strb.append(word);
        }
        return strb.toString();
    }

    public StringBuffer modify(StringBuffer word,char fir,int num){
        String vowel=new String("aeiouAEIOU");
        if(vowel.contains(Character.toString(fir))){
            word.insert(0,fir);
        }else{
            word.append(fir);
        }
        word.append("ma");
        for(int i=0;i<num;i++){
            word.append('a');
        }
        return word;
    }
}
 

总结:

        没注意到题目中以表明只会出现字母和字符,可以直接使用切片函数。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值