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分支结构则不然——只要条件成立就会执行。