当前位置: 首页 > news >正文

字符串替换 (模拟)神奇数 (数学)DNA序列 (固定长度的滑动窗口)

头像
⭐️个人主页:@小羊
⭐️所属专栏:每日两三题
很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~

动图描述

目录

    • 字符串替换 (模拟)
    • 神奇数 (数学)
    • DNA序列 (固定长度的滑动窗口)


字符串替换 (模拟)

  • 字符串替换

在这里插入图片描述

class StringFormat {
public:
    string formatString(string A, int n, vector<char> arg, int m) {
        string ret;
        int j = 0;
        for (int i = 0; i < n; i++)
        {
            if (A[i] == '%')
            {
                ret += arg[j++];
                i++;
            }
            else ret += A[i];
        }
        if (j < arg.size()) 
            for (int i = j; i < arg.size(); i++)
                ret += arg[i];
        return ret;
    }
};

神奇数 (数学)

  • 神奇数

在这里插入图片描述

#include <iostream>
#include <vector>
#include <math.h>
using namespace std;

bool func(int p, int q)
{
    int t = p * 10 + q;
    for (int i = 2; i <= sqrt(t); i++)
        if (t % i == 0) return false;
    return true;
}

bool check(int n)
{
    vector<int> tmp;
    while (n)
    {
        tmp.push_back(n % 10);
        n /= 10;
    }
    int sz = tmp.size();
    for (int i = 0; i < sz; i++)
        for (int j = 0; j < sz; j++)
            if (i != j && tmp[i] && tmp[j] && func(tmp[i], tmp[j])) 
                return true;
    return false;
}

int main()
{
    int a, b;
    cin >> a >> b;
    int ret = 0;
    for (int i = a; i <= b; i++)
        if (check(i)) ret++;
    cout << ret << endl;
    return 0;
}

DNA序列 (固定长度的滑动窗口)

  • DNA序列

在这里插入图片描述

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string str;
    int n;
    cin >> str >> n;
    int len = str.size();
    if (len <= n) 
    {
        cout << str << endl;
        return 0;
    }
    int cnt = 0;
    for (int i = 0; i < n; i++)
        if (str[i] == 'G' || str[i] == 'C')
            cnt++;
    int begin = 0, tmp = cnt;
    for (int l = 0, r = n - 1; r + 1 < len;)
    {
        char a = str[l++], b = str[++r];
        if (a == 'G' || a == 'C') tmp--;
        if (b == 'G' || b == 'C') tmp++;
        if (tmp > cnt) 
        {
            begin = l;
            cnt = tmp;
        }
    }
    cout << str.substr(begin, n) << endl;
    return 0;
}

本篇文章的分享就到这里了,如果您觉得在本文有所收获,还请留下您的三连支持哦~

头像

相关文章:

  • 为什么 npm list -g 没显示 node_modules?✨
  • 【Linux】TCP_Wrappers+iptables实现堡垒机功能
  • 基于 SysTick 定时器实现任务轮询调度器
  • 嵌入式硬件篇---Uart和Zigbee
  • 基于MATLAB/simulink的信号调制仿真--AM调制
  • 数学知识——欧拉函数
  • WHAT - React 技术栈常用库/工具
  • 用AI无差别转换技术协议到生产工艺
  • 硬件知识积累 单片机+ 光耦 + 继电器需要注意的地方
  • [打印机] 惠普打印机的安装和配置
  • 蓝桥杯速成刷题清单(上)
  • grok 驱动级键盘按键记录器分析
  • 扒光HPM6800系列 | 强到起飞的显控MCU介绍
  • 人工智能在高中教育中的应用现状剖析与挑战应对
  • 【QT】QWidget 概述与核心属性(API)
  • FreeRTOS静态任务创建(2025.4.9巨详细)
  • Vue.js组件化开发实战:从工程化到安全纵深设计
  • 华为数字芯片机考2025合集2已校正
  • Transformer Decoder Block的几个优化方案
  • [Windows] Windows更新暂停器 v1.0.0.0
  • 网站开发工程师的经验/seo核心技术排名
  • 广东哪里网站建设/小程序推广引流
  • 什么网站有做册子版/专门培训seo的网站
  • 做外贸的网站有那些/怎么优化
  • 推广网站优化怎么做/汕头seo公司
  • 微信网页编辑器/seo优化的主要内容