[lintcode]入门

37. 反转一个3位整数

描述

反转一个只有3位数的整数。

你可以假设输入一定是一个只有三位数的整数,这个整数大于等于100,小于1000。

您在真实的面试中是否遇到过这个题?  是

样例

123 反转之后是 321
900 反转之后是 9

class Solution {
public:
    /**
     * @param number: A 3-digit number.
     * @return: Reversed number.
     */
    int reverseInteger(int number) {
        if(number >=100 && number <1000)
        {
            int one = number % 10;
            int two = ((number - one) /10) % 10;
            int three = (number-(number%100))/100;
            return one*100+two*10+three;
        }
    }
};

 

145. 大小写转换

描述

将一个字符由小写字母转换为大写字母

你可以假设输入一定在小写字母 a ~ z 之间

您在真实的面试中是否遇到过这个题?  是

样例

a -> A

b -> B

class Solution {
public:
    /**
     * @param character: a character
     * @return: a character
     */
    char lowercaseToUppercase(char character) {
        // write your code here
        return character-32;
    }
};

 

146. 大小写转换 II

描述

将一个字符串中的小写字母转换为大写字母。忽略其他不是字母的字符。

您在真实的面试中是否遇到过这个题?  是

样例

给出 "abc", 返回 "ABC".

给出 "aBc", 返回 "ABC".

给出 "abC12", 返回 "ABC12".

class Solution {
public:
    /**
     * @param str: A string
     * @return: A string
     */
    string lowercaseToUppercase2(string &str) {
        // write your code here
        for(int i  = 0; str[i] != '\0'; i++)
        {
            if(str[i] >= 97 && str[i] <= 122)
                str[i] = str[i] -32;
        }
        return str;
    }
};

 

147. 水仙花数

描述

水仙花数的定义是,这个数等于他每一位上数的幂次之和 见维基百科的定义

比如一个3位的十进制整数153就是一个水仙花数。因为 153 = 13 + 53 + 33。

而一个4位的十进制数1634也是一个水仙花数,因为 1634 = 14 + 64 + 34 + 44。

给出n,找到所有的n位十进制水仙花数。

你可以认为n小于8。

您在真实的面试中是否遇到过这个题?  是

样例

比如 n = 1, 所有水仙花数为:[0,1,2,3,4,5,6,7,8,9]
而对于 n = 2, 则没有2位的水仙花数,返回 []

class Solution {
public:
    /**
     * @param n: The number of digits
     * @return: All narcissistic numbers with n digits
     */
    vector<int> getNarcissisticNumbers(int n) {
        // write your code here
        vector<int> nums;
        if(n == 1)
        {
            for(int i = 0; i<10; i++)
                nums.push_back(i);
            return nums;
        }
        else
        {
            for(int i = pow(10,n-1); i<pow(10,n);i++)
            {
                int sum = 0;
                int x = i;
                while(x >= 1)
                {
                    sum +=pow(x%10, n);
                    x = x/10;
                }
                if(sum == i)
                    nums.push_back(i);
            }
        }
        return nums;
    }
};



214. 数组的最大值

描述

给一个浮点数数组,求数组中的最大值。

您在真实的面试中是否遇到过这个题?  是

样例

给出数组 [1.0, 2.1, -3.3], 返回 2.1.

class Solution {
public:
    /**
     * @param A: An integer
     * @return: a float number
     */
    float maxOfArray(vector<float> &A) {
        // write your code here
        double max = -10000;
        for(int i = 0; i<A.size(); i++)
            if(A[i] > max)
                max = A[i];
        return max;
    }
};

 

219. 在排序链表中插入一个节点

描述

在链表中插

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值