码迷,mamicode.com
首页 > 其他好文 > 详细

【T】

时间:2016-08-06 14:38:03      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:t2016

   /*
 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


【T】

标签:t2016

原文地址:http://wzsts.blog.51cto.com/10251779/1834936

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!