鱼C论坛

 找回密码
 立即注册
查看: 421|回复: 0

三色旗问题,大神看一下,我感觉算法有问题

[复制链接]
最佳答案
0 
发表于 2018-1-14 17:57:53 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
#include<iostream>
#include<string>
using namespace std;
int changeFlag(string &str);
void swap(string &str,int x,int y);
void main()
{
        cout<<"Pleaseinput the dutch flags"<<endl;  
        string str;  
        cin>>str;
        changeFlag(str);  
        cout<<str<<endl;            
}


int changeFlag(string &str){
        int nlength=str.length();
        int fbule=0;
        int fwhite=0;
        int fred=nlength-1;
        int number=0;
        while(fwhite<fred)
        {
                if(str[fwhite]=='w')
                {
                        fwhite++;
                        cout<<fwhite<<endl;
                }
                else if(str[fwhite]=='b')
                {
                        if(fwhite!=fbule)
                        {swap(str,fwhite,fbule);}
                        fwhite++;
                        fbule++;
                        number++;
                }
                else
                {
                        while(fwhite<fred)
                        {
                                if(str[fwhite]=='r')
                                {if(fwhite!=fred)
                                {swap(str,fwhite,fred);}
                                fwhite++;
                                fred--;
                                number++;
                                }
                        }
                }       
                return number;
               
        }
}


void swap(string &str,int x,int y)  
{  
        char tmp;  
        tmp = str[x];  
        str[x] = str[y];  
        str[y] = tmp;  
        cout<<x<<" swaps with "<<y<<endl;  
}
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号 )

GMT+8, 2018-7-23 02:27

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表