326. 3 的幂
复习知识点:本题使用取余+相除进行计算,得到最终结果
class Solution {
public:
bool isPowerOfThree(int n) {
while(n && n % 3 == 0)
// 每次取余后对余数除三,最终判断剩下的哪个数字是不是1,如果不是的话说明因子不全为3
n /= 3;
if(n == 1)
return true;
return false;
}
};
344. 反转字符串
复习知识点:双指针从两边向中间进行游走然后将字符进行交换即可.
class Solution {
public:
void reverseString(vector<char>& s) {
int left = 0, right = s.size() - 1;
while(left < right)
swap(s[left++], s[right--]);
}
};
387. 字符串中的第一个唯一字符
复习知识点:统计字符串的每个字母出现次数然后将出现一次的进行返回即可
class Solution {
public:
int firstUniqChar(string s) {
unordered_map<char, int> hash;
// 统计每个字符出现的次数
for(char ch : s)
++hash[ch];
// 出现一次的话就返回反之返回-1
for(int i = 0;i < s.size();++i)
{
if(hash[s[i]] == 1)
return i;
}
return -1;
}
};
412. Fizz Buzz
复习知识点:按照题目要求写好判断语句即可,然后每次将临时字符串加入到最终的字符串数组中.
class Solution {
public:
vector<string> fizzBuzz(int n) {
vector<string> answer;
// 数字从1开始
for (int i = 1; i <= n; i++) {
string curr;
if (i % 3 == 0) {
curr += "Fizz";
}
if (i % 5 == 0) {
curr += "Buzz";
}
// 这里需要注意数字转化为字符才能相加
if (curr.size() == 0) {
curr += to_string(i);
}
// 在最终的字符数组里加入当前字符串
answer.emplace_back(curr);
}
return answer;
}
};