牛客周赛Round31-小白感悟

第一题

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

小红拿到了一个字符串,她发现这个字符串可能是她自己的名字"kou",于是想将其替换成小紫的名字"yukari"。你能帮帮她吗?

签到题很简单

c++版

#include<iostream>
using namespace std;
int main(){
    string s;
    cin>>s;
    cout<<((s=="kou")?"yukari":s);
}

java:

import java.util.Scanner;
 
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String str = sc.next();
        System.out.println(str.replace("kou","yukari"));
    }
}

第二题:

小红拿到了一个正整数x,她想知道x有多少个不同的素因子,你能帮帮她吗?

这道题的要点在于读题:是要连续的几个因子,而不是所有的因子

c++:

void sol() {
    cin >> n;
    for(ll i = 2; i * i <= n; i++) {
        if(n % i == 0) {
            t++;
            while(n % i == 0) n /= i;
        }
    }
    if(n > 1) t++;
    cout << t;
}
int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	sol();
	return 0;
}

第三题:

小红的字符串中值

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

小红定义一个长度为奇数的字符串的“中值”为中间那个字符。例如"kou"的中值是'o'。
现在小红拿到了一个字符串,她想知道某个字符是多少个子串的中值。你能帮帮她吗?

思路:也就是一个字符算一个中值,以这个字符为对称轴,看他两边的字符最多有多少对称,也就是去最小值,两边字符的最小值

c++代码如下:

#include<iostream>
using namespace std;
int main(){
    int n;
    cin>>n;
    char t;
    cin>>t;
    string s;
    cin>>s;
    long long int i,sum=0;
    for(i=0;i<n;i++){
        if(s[i]==t) sum+=min(i,n-1-i)+1;
    }
    cout<<sum;
}

第四题:

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

小红拿到了一个数组,初始数组为空,她希望你实现以下两种操作:
1. 输入1 x y,将x插入在元素y的右边。保证此时数组中没有元素等于x,且数组中存在一个y。特殊的,如果将x插入在数组的最左边,则y=0
2. 输入2 x,将元素x删除。

请你在所有操作后输出整个数组。

这道题看了个大佬的代码,果然思路决定一切

在步骤1中x,y的数量和x,y的插入也有关系,所以使用map这个数据结构来解决

c++代码如下:

int main() {
    int Q;
    cin >> Q;
    map<int, list<int>::iterator> m;
    list<int> q;
    while(Q--) {
        int op;
        cin >> op;
        if (op == 1) {
            int x, y;
            cin >> x >> y;
            if (y == 0) {
                q.pf(x);
                m[x] = q.begin();
            } else {
                auto it = m[y];
                q.insert(next(it), x);
                m[x] = next(it);
            }
        } else {
            int x;
            cin >> x;
            q.erase(m[x]);
            m.erase(x);
        }
    }
     
    printf("%d\n", q.size());
    for (auto c: q) printf("%d ", c);
     
    return 0;
}

相关推荐

  1. Round31-感悟

    2024-02-05 08:38:04       29 阅读
  2. Round 36----->C.红的白色字符串

    2024-02-05 08:38:04       26 阅读
  3. Round 30(A~E)

    2024-02-05 08:38:04       32 阅读
  4. Round 39vp(A--F)

    2024-02-05 08:38:04       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-05 08:38:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-05 08:38:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-05 08:38:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-05 08:38:04       20 阅读

热门阅读

  1. 日语语法小结

    2024-02-05 08:38:04       27 阅读
  2. 【无标题】

    2024-02-05 08:38:04       22 阅读
  3. vue+elementui给遍历生成表单添加效验

    2024-02-05 08:38:04       33 阅读
  4. 鸿蒙Native项目生产动态库(.so) 和静态库(.a)

    2024-02-05 08:38:04       28 阅读
  5. Thinkpad E550 安装 Ubuntu

    2024-02-05 08:38:04       32 阅读
  6. 【推荐算法】userid是否建模

    2024-02-05 08:38:04       30 阅读
  7. Pytorch: nn.dropout

    2024-02-05 08:38:04       32 阅读
  8. nextcloud 优化扩展

    2024-02-05 08:38:04       27 阅读
  9. PyTorch 2.2 中文官方教程(十六)

    2024-02-05 08:38:04       24 阅读