请教~C++怎么验证一段数据 是否有相同的数字
发布网友
发布时间:2023-07-12 20:30
我来回答
共4个回答
热心网友
时间:2024-12-13 14:40
没有重复的数字,数字只有0-9十个字符,利用哈希思想
int check_p( char *str )
{
int digit[11]={0};
int i ;
for( i=0;str[i];i++ )
{
int pos=str[i]-'0' ; //取数的数值 '0'-'0'=0 '1'-'0'=1
if ( pos>=0 && pos <=9 ) //如果是数
{
if ( digit[pos] > 1 ) //如果超过1,则表示已经有过这个数了
return false ;
digit[pos]++ ; //该数的位置+1
}
}
return true ;
}
热心网友
时间:2024-12-13 14:41
bool IsRep( const char* pstr)
{
int flag = 0 ;
int len = strlen(pstr);
if ( len >10 ) return flase;
int ( i = 0; i < len; i++)
{
int m_num = pstr[i] -'0';
if( flag & 0x0000 0001 << m_num+1) return flase;
else flag = flag | 0x0000 0001 << m_num+1;
}
return true;
}
大概思路就这样,没在编译器上跑过。
热心网友
时间:2024-12-13 14:41
哈哈,我补充上面同学的一点if(i!=j&&------)
热心网友
时间:2024-12-13 14:42
循环比较一遍就好了
char a[100] ="123456783";
int i =0;
for (; i<strlen(a); ++i)
{
for(int j = i +1; j < strlen(a); ++j)
{
if (a[i] == a[j])
{
cout << "true" << endl;
break;
}
}
}
if (i = strlen(a))
{
cout << "false" << endl;
}