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. 在排序链表中插入一个节点
描述
在链表中插