第一题:第一个出现两次的字母
思路:用数组来统计字符出现次数,当其出现第二次时返回即可
class Solution {
public:
char repeatedCharacter(string s) {
int a[26]={0};
char res;
for(int i=0;i<s.size();i++){
a[s[i]-'a']++;
if(a[s[i]-'a']==2){
res=s[i];
break;
}
}
return res;
}
};
第二题:相等行列对
思路:遍历每一行和每一列,找到符合条件的即可
class Solution {
public:
int equalPairs(vector<vector<int>>& grid) {
int res=0;
int n=grid.size();
for(int i=0;i<n;i++){
int j=0,k=0;
while(k<n){
while(j<n&&grid[i][j]==grid[j][k]){
j++;
}
if(j==n){
res++;
}//遍历完该行和该列相等则符合条件
j=0;
k++;
}
}
return res;
}
};