C++ 我已经通过了所有关于这个问题的测试案例,甚至所有关于Udebug的测试案例,并且仍然得到了关于UVA在线法官的WA裁决

C++ 我已经通过了所有关于这个问题的测试案例,甚至所有关于Udebug的测试案例,并且仍然得到了关于UVA在线法官的WA裁决,c++,c++11,adhoc,C++,C++11,Adhoc,法官姓名-UVA在线法官 问题名称汉堡时间? 问题ID-11661 链接- 我已经尝试解决它,并通过了问题pdf中提供的所有测试用例以及uDebug。但当我提交解决方案时,我得到了错误的答案。请帮助我指出我的错误。提前感谢 #include <iostream> using namespace std; int main() { long n; while(1) { cin >> n; if(n == 0) exit(0);

法官姓名-UVA在线法官
问题名称汉堡时间?
问题ID-11661
链接-

我已经尝试解决它,并通过了问题pdf中提供的所有测试用例以及uDebug。但当我提交解决方案时,我得到了错误的答案。请帮助我指出我的错误。提前感谢

#include <iostream>
using namespace std;
int main() {
    long n;
    while(1) {
        cin >> n;
        if(n == 0) exit(0);
        char ch;
        long countr = 0;
        cin >> ch;
        char start = ch;
        long ans = 1000000000;
        for(long i = 1; i < n; i++) {
            cin >> ch;
            countr++;
            if(ch == 'Z') {
                ans = 0;
            } else if(start == 'R' && ch == 'D') {
                if(countr < ans) {
                    ans = countr;
                }
            } else if(start == 'D' && ch == 'R') {
                if(countr < ans) {
                    ans = countr;
                }
            }
            if(ch == 'R') {
                start = ch;
                countr = 0;
            }
            if(ch == 'D') {
                start = ch;
                countr = 0;
            }
        }
        cout << ans << endl;
    }
    cout << endl;
    return 0;
}
#包括
使用名称空间std;
int main(){
长n;
而(1){
cin>>n;
如果(n==0)退出(0);
char ch;
长计数r=0;
cin>>ch;
char start=ch;
长ans=100000000;
用于(长i=1;i>ch;
countr++;
如果(ch='Z'){
ans=0;
}else if(start='R'&&ch='D'){
if(countr
Z

此代码失败。在开始时,在获取第一个字符后,将ch=='Z'ans=0的条件放在开头。

1)调试代码,或2)向“法官”投诉.3)描述您的问题。为什么一次读取一个字符?一次读取整个字符串,并调用函数以获取使用该字符串作为参数的最小距离。这样做会减少混乱,并适当地集中您的问题。这表明这些在线评委网站不会教您如何编写co这就是你在这里发布问题时应该努力发布和提问的内容。我们不需要知道“法官”,也不需要关心
t
或任何这些输入例程等。你所需要做的就是找到测试用例,将其放入该字符串中,然后调试代码。