vector<int> cnt(26); n=s1.length(); for(int i=0;i<n;i++){ ++cnt[s1[i]-'a']; }
s1是字符數組,s1[i]-'a'是為了將a變成0,b變成1,c變成2.
cnt用於統計每個字母在s1中出現的次數。
++cnt[s1[i]-'a'] s1[i]是一個字符,遞增與該字符對應的計數器的個數。
void rotate(vector<int>& nums, int k) { int n=nums.size(); k%=nums.size(); vector<int> ans(n); for(int i=0;i<n;i++){ int pos=(i+k)%n; ans[pos]=nums[i]; } nums.assign(ans.begin(), ans.end()); }
c++中assign函數能實現不同容器相同數據類型之間的賦值。
int m = (l + r) >> 1; 意思是(l+r)/2向下取整
if else if 和if if的區別
在if-else if分支結構中,如果前面有一個條件成立,則下面的分支結構將不會不會被執行;而if-if分支結構則不然——只要條件成立就會執行。