/*大众点评第一题:质因数分解,如120=2*2*2*3*5
用vector保存质因数
*/
bool isPrime(int x)
{
if(x==1)
return false;
for(int i=2;i<=x/2;i++)
{
if(x%i==0)
return false;
}
return true;
}
void fun(int n)
{
vector<int> ivec;
for(int i=2;i<=n;i++)
{
if(isPrime(i))
{
while(n%i==0)
{
n /= i;
ivec.push_back(i);
}
}
}
vector<int>::iterator iter;
for(iter=ivec.begin();iter!=(ivec.end()-1);iter++)
cout<<*iter<<"*";
cout<<*iter<<endl;
}
/*大众点评第2题:求二叉树的深度
根的深度为1
*/
int TreeDepth(Node *pTreeNode)
{
if(!pTreeNode)
return 0;
if(pTreeNode->left==0&&pTreeNode->right==0)
return 1;
int left=TreeDepth(pTreeNode->left);
int right=TreeDepth(pTreeNode->right);
return 1+max(left,right);
}
/*大众点评第3题:找出最长不重复的子串,输出子串,返回长度。
如果长度相同,显示第一个子串。采用暴力解法。
*/
int longestUncommonSubstring(char *str)
{
int length=strlen(str);
int startPos=0,endPos=0,outPos=0;
int len=0,maxlen=0;
while(endPos<length)
{
endPos++;
for(int i=endPos-1;i>=startPos;--i)
{
if(str[i]==str[endPos])
{
len=endPos-startPos;
if(len>maxlen)
{
maxlen=len;
outPos=startPos;
}
startPos++;
endPos=startPos;
break;
}
}
}
for(int i=outPos;i<outPos+maxlen;i++)
cout<<*(str+i);
return maxlen;
}
三道笔试题
最新推荐文章于 2023-07-05 17:18:05 发布