写一个函数,它的原形是:
int continumax(char *outputstr,char *intputstr)
功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。
例如:
"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,outputstr所指的值为123456789。
注意很多答案是错的,未考虑末尾不是字母的情况!
int[......]
写一个函数,它的原形是:
int continumax(char *outputstr,char *intputstr)
功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。
例如:
"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,outputstr所指的值为123456789。
注意很多答案是错的,未考虑末尾不是字母的情况!
int[......]
有4 张红色的牌和4 张蓝色的牌,主持人先拿任意两张,再分别在 A、B、C 三人额头上贴任意两张牌,A、
B、C 三人都可以看见其余两人额头上的牌,看完后让他们猜自己额头上是什么颜色的牌,A 说不知道,B
说不知道,C 说不知道,然后 A 说知道了。
请教如何推理,A 是怎么知道的。如果用程序,又怎么实现呢?
以下推理很NB,转载自:http://topic.csdn.net/u/20100426/11/b47952ac-47f6-45bd-8874-6d36f8996870.htm[......]
输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,
使其和等于 m ,要求将其中所有的可能组合列出来。
就是回溯么,这回路径改用stack数组模拟做了。
// n numbers, print all sum=m
int stack[1024];
int pos = 0;
void sum(int* arr, int n, int m, int i, int s)
{
if(i==n || s==m)
{
i[......]
就是对二叉树及其子树,交换左右子树。
这种就是先序遍历的变种。
递归版本:
void mirror(struct Node* root)
{
if(root==NULL)
{
return ;
}
swap(&root->left, &root->right);
mirror(root->left);
mirror(root->right);
retur[......]
在一个字符串中找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b。
题目不难,主要是两个条件,注意只出现一次,并且要第一个这种字符。
用stl的map什么的有点不合适,简单数组map即可。
char str_first(char* str)
{
char* ptr = str;
int map[255];
memset(map, 0, sizeof(int)*255);
// First O(N), count
while(*ptr!=[......]