java中jam_Jam的计数法 (Java代码)

题目介绍:

其实这个题猛的一读起来是没有什么头绪的,什么是Jam的计数法?前提是知道什么是Jam数,Jam数其实就是几个字符组成的一个字符串,但是这个字符串中的字符遵循严格的递增顺序,这个题的意思就是我们输入一个字符串,我们之后找他后面的五个满足条件的Jam数字,打个比方就是我们输入的三个数是2 10 5,这三个数的含义是26个字母中的字母标号为2-10的字母,而5代表的是我们接下来要输入的Jam数字的长度,

题介绍的差不多了,下面介绍思路。

解题思路:

既然我们需要用到26个字母,那么我们可以首先把26个字母给放在一个长度为27的数组ch1中,素组第0个不放字符,之后我们可以通过我们输入的2和10来求出满足条件的字符然后存在另一个数组ch2中,然后我们将输入的Jam字符串str1给转化为字符数组ch3,我们可以用indexof()来遍历ch3与字符串str1来求出ch3中的每一个字符在str1中的位置,然后我们可以利用一个while循环来使底下的for循环循环5次,定义一个flag=0,如果满足条件的话,就输出一个Jam数字,flag++,但是ch3每一次是要改变着的,大致思路就是这样的。

注意事项:

比较复杂,敲代码的时候注意一点,一定要理清思路。

参考代码:package itcast3;

import java.util.Scanner;

public class L1104 {

public static void main(String[] args) {

Scanner m=new Scanner(System.in);

char ch1[]=new char[27];

char c='a';

for(int i=1;i

{

ch1[i]=c;

c=(char) (c+1);

}

int number1,number2,number3;

String str1;

number1=m.nextInt();

number2=m.nextInt();

number3=m.nextInt();

str1=m.next();

int length=number2-number1+1;

char ch2[]=new char[length];

int j=0;

for(int i=number1;i<=number2;i++)

{

ch2[j]=ch1[i];

j++;

}

String str2=new String(ch2);

char ch3[]=new char[str1.length()];

ch3=str1.toCharArray();

int flag=0;

while(flag!=5)

{

for(int i=str1.length()-1;i>=0;i--)

{

String str3="";

int number=str2.indexOf(ch3[i]);

if(number

{

if(i==ch3.length-1)

{

for(int s=0;s

{

System.out.print(ch3[s]);

str3+=ch3[s];

}

System.out.print(ch2[number+1]);

str3+=ch2[number+1];

System.out.println();

flag++;

ch3=str3.toCharArray();

break;

}

else if(ch3[i+1]!=ch2[number+1])

{

for(int s=0;s

{

System.out.print(ch3[s]);

str3+=ch3[s];

}

for(int h=number+1;h

{

System.out.print(ch2[h]);

str3+=ch2[h];

}

System.out.println();

flag++;

ch3=str3.toCharArray();

break;

}

}

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值