通过增加元音字符找到词典上的最大字符串

时间:2018-07-07 10:32:08

标签: java string

我正在解决比赛中的问题,但无法清除所有测试用例。

问题出在这里

给您一个字符串S和一个整数Q。您最多可以对字符串执行Q个操作。在一个操作中,您可以将任何元音更改为其下一个字符(例如,'a'->'b','e'->'f','i'->'j','o'->'p ','u'->'b')。通过在字符串S上执行最多Q个操作来生成词典上最大的字符串。

{% for file in image_list %}
    <img src="{{ file }}" alt="">
{% endfor %}

说明:我们有字符串“ abcde”,并且最多可以执行3次操作,我们可以通过将字符串更改为“ bbcdf”,对字符串的第一个和最后一个字符应用该操作,从而形成字典上最大的字符串词典上最大的

我的代码:

E.g.
S=abcde
Q=3
output=bbcdf

3 个答案:

答案 0 :(得分:0)

这是印度IT公司热门明星之一的招聘难题,这就是为什么他们要求提供电话和电子邮件@Wow。

PS:我没有50声望,所以我在这里发表评论。

答案 1 :(得分:0)

package javaLearn.StringEx;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class RePrintVowels {



    public static void main(String[] args) throws InterruptedException, NumberFormatException, IOException {

          BufferedReader scanner = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("enter limitcount");
            int nextInt = Integer.valueOf(scanner.readLine());

            for (int nn=0 ; nn <nextInt ; nn++){

                String nextLine22 = scanner.readLine();
            //  scanner.nextLine();
            //  System.out.println("enter LImit");
                int nextInt2 =Integer.valueOf(scanner.readLine());
                message(nextLine22,nextInt2);
                //  scanner.nextLine();
            //  System.out.println("enter string");
                String nextLine1 =scanner.readLine();
                int nextInt3 =Integer.valueOf(scanner.readLine());
                message(nextLine1,nextInt3);
            //  scanner.close();

            }
            scanner.close();
    }
    public static void message(String StringData,int Limit ){

        /*String texta=StringData;*/

        StringBuilder texta = new StringBuilder(StringData);
        int charArray = texta.length();

        int ij =Limit;
        int it=1;
        if(ij >0){


        for(int i1=0;it<=ij&&i1<charArray ;i1++){
            if(texta.charAt(i1) =='a'
                ||texta.charAt(i1) =='e'
                ||texta.charAt(i1) =='i'
                ||texta.charAt(i1) =='o'
                ||texta.charAt(i1) =='u')
            {
                System.out.println("vowles  :::"+texta.charAt(i1));
                int codePointAt = Character.codePointAt(texta, i1);
                System.out.println("codePOint :::"+codePointAt);
                char c =(char)(codePointAt+1);
                System.out.println("next vowel value ::"+c);
                texta.replace(i1, i1+1, String.valueOf(c));
            //  texta=texta.replace(texta.charAt(i1), (char)(codePointAt+1));
                it++;
            }
            }
        }
        System.out.println("string  :::"+texta);    
    }




}

答案 2 :(得分:-1)

您忘记添加一个元音u条件。试试这个。