概述
文章目录
- 排名及做题情况
- 闲聊
- 第一题 字符串中不同整数的数目 Easy
- 题目截图
- 第一题 比赛未AC代码(卡了两个用例)
- 第一题 赛后更正AC代码
- 第二题 还原排列的最少操作步数 Med
- 题目截图
- 第二题 比赛AC代码
- 第三题 替换字符串中的括号内容 Med
- 题目截图
- 第三题 比赛AC代码
- 第四题 好因子的最大数目 Hard
- 题目截图
- 相关题目 343. 整数拆分
- 赛后cv他人优秀代码
排名及做题情况
国内2147名 全球5219名
做对了 两道Mid 一道Ez没有AC 卡了两个用例 Hard还没有时间看
闲聊
尽管说是第一场周赛 第一次参加这样的线上做题比赛哈哈哈哈
但是我起床都起晚了15分钟 本来10:30开赛的
我想着8点的闹钟 我关掉了还会响起来的
结果就再也没响了 好家伙 一起床10:40了
图书馆也没去成 干脆就不去了 再去的话 11:20了
直接下床拿电脑 然后回床上 开始做题
发现还没有报名 捏马
做题的时候人才刚刚起床 第一道Ez题目做了50分钟
捏马 就是AC不过 算了算了
第二题第三题 其实一点都不难
最后Hard都没有时间看了
做题期间还去刷了个牙 喝了口水
反正以后打周赛的时候 要起早点了 不能再这么晚起床了
第一题 字符串中不同整数的数目 Easy
题目截图
第一题 比赛未AC代码(卡了两个用例)
class Solution {
public:
int numDifferentIntegers(string word) {
auto a = unordered_set<long>();
int strl = word.size();
string temp = "";
for(int i=0;i<strl;i++)
{
if(isdigit(word[i]))
temp+=word[i];
else if(temp.size())
{
long ret = atoi(temp.c_str());
a.insert(ret);
temp = "";
}
}
if(temp.size())
{
int ret = atoi(temp.c_str());
a.insert(ret);
}
return a.size();
}
};
第一题 赛后更正AC代码
class Solution {
public:
int numDifferentIntegers(string word) {
auto a = unordered_set<string>();
int strl = word.size();
string temp = "";
for(int i=0;i<strl;i++)
{
if(isdigit(word[i]))
{
temp+=word[i];
if(temp.size() == 2 && temp[0] =='0')
temp = temp[1];
}
else if(temp.size())
{
a.insert(temp);
temp = "";
}
}
if(temp.size())
a.insert(temp);
return a.size();
}
};
第二题 还原排列的最少操作步数 Med
题目截图
第二题 比赛AC代码
class Solution {
public:
int reinitializePermutation(int n) {
vector<int> dp1(n);
vector<int> dp2(n);
vector<int> pre(n);
int temp = n/2;
int count;
for(int i=0;i<n;i++)
{
dp1[i] = i;
dp2[i] = i;
pre[i] = i;
}
for(count=1;;count++)
{
dp2 = dp1;
for(int i=0;i<n;i++)
{
if(!(i%2)) dp1[i] = dp2[i/2];
else dp1[i] = dp2[(i-1)/2 + temp];
}
if(pre==dp1) break;
}
return count;
}
};
第三题 替换字符串中的括号内容 Med
题目截图
第三题 比赛AC代码
class Solution {
public:
string evaluate(string s, vector<vector<string>>& knowledge) {
int flag = 0,size = knowledge.size();
string temp,ret;
map<string,string> go;
for(int i=0;i<size;i++)
go.insert(make_pair(knowledge[i][0],knowledge[i][1]));
for(char ch:s)
{
if(flag)
{
if(isalpha(ch))
temp+=ch;
else
{
flag = 0;
auto tempret = go.find(temp);
if(tempret == go.end())
ret += '?';
else ret += tempret->second;
temp = "";
}
}
else
{
if(ch == '(')
flag = 1;
else ret+=ch;
}
}
return ret;
}
};
第四题 好因子的最大数目 Hard
题目截图
相关题目 343. 整数拆分
刚刚看了看人家的思路 说这道题是快速幂和整数拆分的合集
所以现在再去二刷这两道题了
下面放出来解答博客链接
Leetcode 343.整数拆分
确实脑力不够 什么剪绳子 什么快速幂 感觉还是之后
真的又做到了再解吧 下面放出来人家的题解
赛后cv他人优秀代码
const int modN = 1e9 + 7;
class Solution {
public:
int maxNiceDivisors(int primeFactors) {
int n = primeFactors;
if (n <= 3) {
return n;
}
long long ans = 0;
int quotient = n / 3;
int remainder = n % 3;
if (remainder == 0) {
ans = myPow(3, quotient);
} else if (remainder == 1) {
ans = myPow(3, quotient - 1) * 4;
} else {
ans = myPow(3, quotient) * 2;
}
return ans % modN;
}
long long myPow(long long x, int n) {
long long ans = 1;
n = abs(n);
while(n){
if(n % 2 != 0){
ans *= x;
ans %= modN;
}
x *= x;
x %= modN;
n /= 2;
}
return ans;
}
};
最后
以上就是凶狠大门为你收集整理的Leetcode 第一周周赛总结(第 234 场周赛)排名及做题情况闲聊第一题 字符串中不同整数的数目 Easy第二题 还原排列的最少操作步数 Med第三题 替换字符串中的括号内容 Med第四题 好因子的最大数目 Hard的全部内容,希望文章能够帮你解决Leetcode 第一周周赛总结(第 234 场周赛)排名及做题情况闲聊第一题 字符串中不同整数的数目 Easy第二题 还原排列的最少操作步数 Med第三题 替换字符串中的括号内容 Med第四题 好因子的最大数目 Hard所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复