我正在学习C++但现在被困住了。我的程序显示错误
error: expected primary-expression before ‘slide’
我提到了这个,但它没有帮助!
#include <iostream>
#include <string>
#include <limits.h>
using namespace std;
int minSwapsHelper(string slide, int n){
int noOfGirls;
for(int i = 0; slide[i]!=' '; i++){
if(slide[i] == 'G'){
noOfGirls++;
}
}
int tempNoOfGirls = noOfGirls, maxNoOfGirls = INT_MIN;
int noOfGirlsAtEachItr[n]={0};
if(slide[0] == 'G'){
noOfGirlsAtEachItr[0] = 1;
}
for(int i = 0; i< n; i++){
if(slide[i] == 'G'){
noOfGirlsAtEachItr[i] = noOfGirlsAtEachItr[i-1] + 1;
}
else{
noOfGirlsAtEachItr[i]= noOfGirlsAtEachItr[i-1];
}
}
for(int i = tempNoOfGirls- 1; i < n; i++){
if(i == (tempNoOfGirls - 1))
noOfGirls = noOfGirlsAtEachItr[i];
else
noOfGirls = noOfGirlsAtEachItr[i] - noOfGirlsAtEachItr[i - tempNoOfGirls];
if(maxNoOfGirls < noOfGirls){
maxNoOfGirls = noOfGirls;
}
}
int noOfBoys = tempNoOfGirls - maxNoOfGirls;
return noOfBoys;
}
int minSwapsToWin(string slide){
/*int i = 0;
while(slide[i] != ' '){
i++;
}
int lengthOfString = i;*/
int lengthOfString = slide.length();
return minSwapsHelper(string slide, lengthOfString);
}
int main(){
string slide = "BBGBGBG";
cout<<minSwapsToWin(slide)<<"n";
return 0;
}
我有代码解决方案的问题如下:
问题:
在一所学校里,学生们正在玩游戏。最初 每个人都站在学校草坪上的圆形路径上。这 索引 1 的学生站在索引 N 和之前的学生旁边 索引 2 的学生。所有女孩需要站在一起才能获胜 游戏。女孩们有影响力影响男孩们 交换仓位。帮助女孩们决定最低掉期次数 他们必须这样做,以便他们所有人站在一起。
输入:BBGBGBG 输出:1 解释:我们可以将索引 3 处的 G 交换为 索引 6 处的 B 将所有 B 和 G 放在一起。
输入:BGBGGB 输出:1 解释:我们可以将索引 3 处的 B 与索引 3 处的 G 交换 索引 2 将所有 B 和 G 放在一起。
这里删除string
:
return minSwapsHelper(string slide, lengthOfString);