将字符串转换为整数,然后找到一对连续的整数C ++的最大总和

时间:2017-11-12 01:47:17

标签: c++

我一直在研究USACO问题,并针对某些测试用例设计了这个(见下文)算法。然而,对于输入" brbrrrbbbrrrrrbrrbbrbbbbrrrb",我得到9.我不明白这是如何可能的。任何人都可以帮我找到问题。

P.S:这是第一个循环的输出,在第二个循环中没有任何值: -10 -10 -10 3 3 五 -10 2 2 -10 4 4 -10 0

#include <iostream>
#include <vector>

using namespace std;

int main() {

    string necklace;
    cin >> necklace;
    vector <int> neck;
    int c_it = 0;

 for(unsigned int i = 0; i < necklace.length(); i++){
            if(necklace[i] == necklace[i+1] | 'w' == necklace[i+1]){

            c_it++;

        }

        else{
            if (c_it >= 1){
             cout << c_it+1 << endl;  
            }
            else{
            cout << "-10" << endl; 
            }
            c_it = 0;
        }

    }

int maximum = 0;

for(int i=0; i < neck.size(); i++){
        for(int j=1; j<= neck.size(); j++){
            int valueToCompare = neck[i] + neck[j];

            if(valueToCompare > maximum){
                maximum = valueToCompare;
            }

            i++;
            j++;
        }
    }

  cout << maximum;

}

1 个答案:

答案 0 :(得分:0)

原因是你有一个错误是因为“|”在你的第一个if语句中。它应该是布尔运算符“||”代替。