1.翻转单词序列
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param str string字符串
* @return string字符串
*
* C语言声明定义全局变量请加上static,防止重复定义
*/
void reverse (char* left,char *right)
{
while(right>left)
{
char a=*left;
*left=*right;
*right=a;
left++;
right--;
}
}
char* ReverseSentence(char* str ) {
// write code here
reverse(str,str+strlen(str)-1);
char*start=str;
while(*start){
char *end=start;
while(*end!=' '&&*end)
{
end++;
}
reverse (start,end-1);
if(*end)
start=end+1;
else
start=end;
}
return str;
}
2.跳台阶扩展问题
这个和斐波那契就是两个思路了
其实想一下是更简单了,因为青蛙跳到n阶可以每一个台阶都跳
所以每一个台阶都有两种可能,被跳,不被跳
即2^(number-1)
但是当n=1 这个公式的首项就不对了,需要单独写出初值
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param number int整型
* @return int整型
*
* C语言声明定义全局变量请加上static,防止重复定义
*/
int jumpFloorII(int number ) {
// write code here
if(number==1) return 1;
int c=pow(2, number-1);
return c;
}
创作不易,感谢观看