【T】

   /*
 ABC  XYZ  abc xyz
    i       j
 i指向A  if a[i]>=a  i++
 j指向a  if a[j]<=Z  j++
ABCabc
i  j
aBCAbc
 i  j
abCABc
  i  j
abcABC
   i
 */
#include <iostream>
#include <string.h>
using namespace std;
  void fun(char*a)
{
  int len=strlen(a);
  int i=0,j=0;
  char tmp=0;
   while(j<len-1)
    {
       cout<<a<<endl;
       while(a[i]>='a'&&i<len)    i++;       j=i;
       while(a[j]<='Z'&&j<len-1)    j++; 
       tmp=a[i];a[i]=a[j];a[j]=tmp;          

   } 
     cout<<a<<endl;
}

 void test0()
{	 
	char s[]="ABCabc";
	fun(s);  
}
void test1()
{ 
	char s[]="AAAAAaaaaaaaaaaaaAAAAAAAAAAAAAAAAaaaaaaaa";
	fun(s); 
}
int main()
{	 	 
         test1();
	return 0;
}


/*


難點在於求間距最小的
只要有元素相同,距離爲0,是最小的,而這些數據是離散的。
*/

#include <iostream>
using namespace std;
void fun(int a[],int len)
 {
//找到最大的數有多少個, 找最小的數有多少個,mmin找到間距最小的;
int  max=a[0],min=a[0],maxcount=0,mincount=0,mmin=a[0],mmincount=0;
int b[len];
for(int i=0;i<len;i++)
{
    if(a[i]>max)max=a[i];
    if(a[i]<min)min=a[i];    
}
for(int i=0;i<len;i++)
{
    if(a[i]==max)maxcount++;
    if(a[i]==min)mincount++;    
}
cout<<maxcount<<"wwwwwwwwwwwwwwwwwwwwwwwwwww"<<endl;
cout<<"maxdis : "<<maxcount*mincount<<endl; 
 

     
}

  
int test0()
{     
int a[]={1,2,3,4,5,6};// max : 1  min :5
int len=sizeof(a)/sizeof(a[0]);
    fun(a,len); 
}  
void test1()
{ 
int a[]={1,1,1,2,3,4,111,111,111};//max:9 min :6 
//int a[]={1,1,1,2,2,3,4,111,111,111};//max:9 min :6+1
//int a[]={1,2,3,4,5,6};//max:1 min :5
//int a[]={6,6,6,6,6,6};//max:15 min :15
int len=sizeof(a)/sizeof(a[0]);
    fun(a,len);  
}
int main()
{	 	 //排序了纔好處理,這裏測試 均直接傳排好序的數組
         test1();	return 0;
}

學習連接http://blog.csdn.net/minsophia/article/details/51836367
相關文章
相關標籤/搜索