【剑指offer】翻转单词序列,跳台阶扩展问题

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;
}

创作不易,感谢观看

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值