首页 > 其他 > 详细

nyoj 数的二进制中1的个数

时间:2014-05-17 23:04:12      阅读:506      评论:0      收藏:0      [点我收藏+]
很有用O(n)内实现三类数字分离,以前大多是分成两类数据,快排中分成两类,还有就是“ab***vvvc” 在O(n)中变成 abvvc****,变成两类划分问题
 
bubuko.com,布布扣
#include<iostream>
#include<string.h>
using namespace std;
const int N=1000;
char c[N];
int len;
 void swap(char &a,char &b)
{
    //a=a^b;
    //b=a^b;
    //a=a^b;
    char c=a;
       a=b;
       b=c;

}
 void display()
 {
 for(int i=0;i<len;i++)
            {
        cout<<c[i];
            }
 
 }
int main()
{
    int len2;
    cin>>len2;
    while(len2--)
    {
        cin>>c;
         len=strlen(c);
        cout<<"长度为"<<len<<endl;
        int beg=0; 
        int end=len-1;
        int cur=0;
            while(cur<=end)
            {
                if(c[cur]==R)
                {
                   swap(c[cur],c[beg]);
                 //  cout<<"swapR"<<cur<<"---and--"<<beg<<endl;
                 
                   beg++;
                   cur++;
                
                
                }
                
                else if(c[cur]==W)
                {
                    cur++;

                
                
                }
                else
                {
                    swap(c[cur],c[end]);
                    // cout<<"swapB"<<cur<<"---and--"<<end<<endl;
                    end--;
                    

                
                
                }

            cout<<"正在进行"<<endl;
            
            
            }
            display();
    
       cout<<endl;
    }
    system("pause");
return 0;
}
bubuko.com,布布扣

nyoj 数的二进制中1的个数,布布扣,bubuko.com

nyoj 数的二进制中1的个数

原文:http://www.cnblogs.com/hansongjiang/p/3734497.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!