Java UVA 10324零和一

Java UVA 10324零和一,java,java.util.scanner,Java,Java.util.scanner,我试着问一个来自UVA()的问题,但总是不断地得到答案中的时间限制。我很确定代码是正确的,但代码仍然进入无限循环。这个问题我试了6次,但似乎都没通过 有人能解释一下可能的错误吗: import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ public class Main { public

我试着问一个来自UVA()的问题,但总是不断地得到答案中的时间限制。我很确定代码是正确的,但代码仍然进入无限循环。这个问题我试了6次,但似乎都没通过

有人能解释一下可能的错误吗:

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
public class Main {
    public static void main(String[] args) { 
        Scanner sc = new Scanner(System.in);
        int ii=1;
        boolean flag = false;
        while(sc.hasNextLine()){
            String str = sc.nextLine();
            if(str.trim().isEmpty())
                break;
            int TC = sc.nextInt();
            System.out.println("Case " +ii+++":");
            while(TC-->0){
                flag = false;
                int a = sc.nextInt();
                int b = sc.nextInt();
                int c=0;
                if(a>b){
                    c=a;
                    a=b;
                    b=c;
                }
                c = str.charAt(a)-'0';
                for(int i=a+1;i<=b;i++){
                    if(str.charAt(i)-'0' != c){
                        flag = true;
                        break;
                    }
                }
                System.out.println(flag?"No":"Yes");
            }
            try{
                sc.nextLine();
            }
            catch(Exception ex){
                break;
            }
        }
}
}
import java.util.*;
导入java.lang.*;
导入java.io.*;
/*只有当类是公共的时,类的名称才必须是“Main”*/
公共班机{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
int ii=1;
布尔标志=假;
while(sc.hasNextLine()){
字符串str=sc.nextLine();
if(str.trim().isEmpty())
打破
int TC=sc.nextInt();
System.out.println(“Case”+ii++“:”);
而(TC-->0){
flag=false;
int a=sc.nextInt();
int b=sc.nextInt();
int c=0;
如果(a>b){
c=a;
a=b;
b=c;
}
c=str.charAt(a)-'0';

对于(int i=a+1;i这是
的运行对于(int i=a+1;It
-'0'
是不必要的C是a索引的整数。
integer.parseInt()
或-'0'对hhh很重要。它对给定字符串运行多次。将对其进行更改并在明天查看。谢谢:)
int total = 0;
int changes[] = new int[str.length()];
for(int i = 1; i < changes.length; i++) {
    if(str.charAt(i) != str.charAt(i - 1)) {
        total++;
    }
    changes[i] = total;
}
boolean flag = (changes[a] != changes[b]);