发现还早,并没有睡意,再看了一眼后面的Easy,发现很快,so,写了吧,为了节约能源,把两题合在一起
Length of Last Word
Given a string s consists of upper/lower-case alphabets and empty space characters ’ ‘, return the length of last word in the string.
If the last word does not exist, return 0.
Note: A word is defined as a character sequence consists of non-space characters only.
For example,
Given s = “Hello World
“,
return5
.
- 题意:给一个串,求最后一个单词的长度.
- 解法:从后往前循环,从第一个非空格开始计数,到空格或者循环完结束.
class Solution {
public:
int lengthOfLastWord(string s) {
int iLastChar = s.size() - 1;
for (; iLastChar >= 0 && ' ' == s[iLastChar]; --iLastChar);
int iResult = 0;
for (; iLastChar >= 0 && ' ' != s[iLastChar]; --iLastChar, ++iResult);
return iResult;
}
};
Plus One
Given a non-negative number represented as an array of digits, plus one to the number.
The digits are stored such that the most significant digit is at the head of the list.
- 题意:大数加1..
- 解法:写过大数的这个应该没啥问题,需要注意的地方只有一点,进位,比如999,要在前面insert一个1.
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int iAddValue = 1;
for (int i = digits.size() - 1; i >= 0 && iAddValue > 0; --i) {
digits[i] += iAddValue;
iAddValue = digits[i] > 9;
digits[i] -= iAddValue ? 10 : 0;
}
if (iAddValue)
digits.insert(digits.begin(), 1);
return digits;
}
};
欢迎访问我的github,我的leetcode持续更新: https://github.com/tsfissure/LeetCode