LeetCode 第 405 场周赛. T1 - T3
原题链接
简单
作者:
autumn_0
,
2024-07-07 12:33:45
,
所有人可见
,
阅读 3
第一题
class Solution {
public:
string getEncryptedString(string s, int k) {
string a = s;
int n = s.size();
for(int i = 0; i < n; i ++ )
{
int j = (i + k) % n;
s[i] = a[j];
}
return s;
}
};
第二题
class Solution {
public:
bool check(int x, int n)
{
for(int i = 0; i + 1 < n; i ++ )
if(((x >> i & 1) == 0) && ((x >> (i + 1) & 1 ) == 0))
return false;
return true;
}
string convert(int x, int n)
{
string a = "";
for(int i = n - 1; i >= 0; i -- )
a += to_string(x >> i & 1);
return a;
}
vector<string> validStrings(int n) {
vector<string> res;
for(int i = 0; i < 1 << n; i ++ )
{
if(check(i, n))
{
string s = convert(i, n);
res.push_back(s);
}
}
return res;
}
};
第三题
class Solution {
public:
int numberOfSubmatrices(vector<vector<char>>& grid) {
int n = grid.size(), m = grid[0].size();
int sumx[n + 1][m + 1], sumy[n + 1][m + 1];
memset(sumx, 0, sizeof sumx);
memset(sumy, 0, sizeof sumy);
int ans = 0;
for(int i = 1; i <= n; i ++ )
for(int j = 1; j <= m; j ++ )
{
sumx[i][j] = sumx[i - 1][j] + sumx[i][j - 1] - sumx[i - 1][j - 1] + (grid[i - 1][j - 1] == 'X');
sumy[i][j] = sumy[i - 1][j] + sumy[i][j - 1] - sumy[i - 1][j - 1] + (grid[i - 1][j - 1] == 'Y');
if(sumx[i][j] == sumy[i][j] && sumx[i][j] >= 1)
ans ++ ;
}
return ans;
}
};