Java 给定一个超数a=12435和一个正常数b=45。检查给定的数字b是否与a的序列相同?

Java 给定一个超数a=12435和一个正常数b=45。检查给定的数字b是否与a的序列相同?,java,Java,在确定a是超数后,如何执行数字b是否与a在同一序列中?使用变量跟踪匹配字符的序列。 If I enter a=12435 and b=45 as they are in the sequence return true a=12435 b=54 as they are not in sequence return false. I think i can accept an input number as a string and split it into char array but I w

在确定a是超数后,如何执行数字b是否与a在同一序列中?

使用变量跟踪匹配字符的序列。
If I enter a=12435
and b=45 as they are in the sequence return true
a=12435
b=54 as they are not in sequence return false.
I think i can accept an input number as a string and split it into char array but I wanted to use only INT arrays.That is what the problem i am facing.Thanks in   advance.
找到匹配项后,将删除该字符,以防止在处理包含重复字符的序列时出现潜在错误

public static boolean verify(String a, String b){
    if("".equals(b)){
        return true;
    }
    int locate = a.indexOf(String.valueOf(b.charAt(0)));
    if(locate == -1){
        return false;
    }else{
        return verify(a.substring(locate + 1), b.substring(1));
    }
}
public bool isnsequence(字符串a、字符串b)
{
int-lowestinex=-1;
for(int i=0;i=下限索引)
{
Lowestinex=指数;
b=b.移除(索引,1);
--一,;
}
其他的
返回false;
}
}
返回Lowestinex>-1;
}

您不需要像其他答案所建议的那样转换为
字符串
s:只需检查超数(
a
)的最后一位是否与正常数字(
b
)的最后一位匹配即可

  • 如果它们相同,将两个数字除以10,以便下次比较下一个数字
  • 如果它们不同,只需将
    a
    除以10,因为该数字不是您要查找的下一个数字
重复此操作,直到任意一个数字达到零;如果
a
匹配
b
,则
b
现在将为零

public bool IsInSequence(string a, string b)
                    {
                        int lowestIndex = -1;

                        for (int i = 0; i < a.Length; i++)
                        {
                            var index = b.IndexOf(a[i]);

                            if (index != -1)
                            {
                                if (index >= lowestIndex)
                                {
                                    lowestIndex = index;
                                    b = b.Remove(index,1);
                                    --i;
                                }
                                else
                                    return false;
                            }
                        }

                        return lowestIndex > -1;
                    }

你想比较每个数字吗??如果我设置a=13425和b=45,应该返回什么?u正在比较两个数字的每个数字??正确,因为b在aa=15234和b=54的相同序列中,那么它将正确??到目前为止您尝试了什么?(除了“我试图让StackOverflow阅读器为我编写代码。”)获取a和b的最后一位。如果它们相等,则取a和b的下一个数字。如果它们不相等,则获取a的下一个数字并进行比较。如果b中没有剩余的数字,则返回true,否则返回FALSE b.indexOf(a[i])返回什么?我怀疑a是字符串还是数组?这是什么语言?它当然不是Java.b.indexOf(a[i])如果b中不存在a的字母,则返回-1,否则返回字母所在的索引。字符串只是chars.import java.util.Scanner的数组;公共类测试{public static void main(String args[]){Scanner sc=new Scanner(System.in);System.out.println(“输入一个数字”);int a=sc.nextInt();int b=sc.nextInt();boolean s=verify(a,b);System.out.println(s);}公共静态布尔验证(int a,int b){(a!=0&&b!=0){if(a%10==b%10){b/=10;}a/=10;}返回a==0&&b==0;}它返回false即使b是不连续的如果a匹配b,那么两个数字现在都将为零,返回语句返回true,但即使给定a=12435和b=45,它也打印为false。这是最好的最佳解决方案,我想放弃投票,但sry,因为我没有声誉。@mahesh仅供参考,如果你在ideone.com上发布链接,会更容易些(或类似网站)显示一个代码不工作的示例,因为它在注释中基本不可读。首先,检查字符串b的第一个字符是否存在于a中,如果不存在,则返回false;如果存在,且索引为i,然后使用相同的逻辑判断没有第一个字符的字符串b是否为a的序列。
while (a != 0 && b != 0) {
  if (a % 10 == b % 10) {
    b /= 10;
  }
  a /= 10;
}
return b == 0;