Java 通过增加元音字符来查找词典中最大的字符串
我在一次竞赛中解决了一个问题,但无法清除所有的测试用例 问题是: 您将获得一个字符串S和一个整数Q。您最多可以对该字符串执行Q操作。在一个操作中,您可以将任何元音更改为它的下一个字符(例如,“a”->“b”,“e”->“f”,“i”->“j”,“o”->“p”,“u”->“b”)。通过对字符串S执行最多Q个操作来生成按字典顺序排列的最大字符串Java 通过增加元音字符来查找词典中最大的字符串,java,string,Java,String,我在一次竞赛中解决了一个问题,但无法清除所有的测试用例 问题是: 您将获得一个字符串S和一个整数Q。您最多可以对该字符串执行Q操作。在一个操作中,您可以将任何元音更改为它的下一个字符(例如,“a”->“b”,“e”->“f”,“i”->“j”,“o”->“p”,“u”->“b”)。通过对字符串S执行最多Q个操作来生成按字典顺序排列的最大字符串 E.g. S=abcde Q=3 output=bbcdf 说明:我们有字符串“abcde”,我们最多可以执行3次操作,我们可以通过将字符串更改为“bb
E.g.
S=abcde
Q=3
output=bbcdf
说明:我们有字符串“abcde”,我们最多可以执行3次操作,我们可以通过将字符串更改为“bbcdf”,从而在字符串的第一个和最后一个字符上应用该操作来形成字典最大的字符串,这是字典最大的
我的代码:
String in=br.readLine();
int Q=Integer.parseInt(br.readLine());
char [] inarray=in.toCharArray();
int start=0;
int l=inarray.length;
while(start<l)
{
if(Q==0)
break;
if(inarray[start]=='a'||inarray[start]=='e'||inarray[start]=='i'||inarray[start]=='o')
{
inarray[start]=(char)((int)inarray[start]+1);
Q--;
}
// System.out.println(inarray[start]);
start++;
}
String out = new String(inarray);
System.out.println(out);
String in=br.readLine();
intq=Integer.parseInt(br.readLine());
char[]inarray=in.toCharArray();
int start=0;
int l=inarray.length;
虽然(开始你忘了添加一个元音u
条件。试试这个。这是一个印度IT公司Hot Star的招聘难题,这就是为什么他们要求电话和电子邮件@Wow
PS:我没有50%的声誉,这就是我在这里发表评论的原因。package javaLearn.StringEx;
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);
}
}
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStreamReader;
导入java.util.ArrayList;
公共类重印元音{
公共静态void main(字符串[]args)抛出InterruptedException、NumberFormatException、IOException{
BufferedReader scanner=新的BufferedReader(新的InputStreamReader(System.in));
System.out.println(“输入limitcount”);
int nextInt=Integer.valueOf(scanner.readLine());
对于(int nn=0;nn 0){
对于(int i1=0;你应该添加一个语言标签。好的,这样做为什么output=bbcdf
而不是output=dbcde
?我们只能更改元音警告-链接指向一个打破所有可能隐私考虑的网站。欢迎使用堆栈溢出!请阅读并编辑你的答案以提供更多值。如果我将“u”更改为“b”那个么我猜绳子会更小