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

2025/03/07训练

2025/03/07训练

1、L2-006 树的遍历

n = int(input())
a1 = list(map(int,input().split()))
a2 = list(map(int,input().split()))

def solve(a_start,a_end,b_start,b_end):
    if a_start > a_end:
        return None
    newtree = [a1[a_end],-1,-1]
    root_index = b_start
    #找根节点
    while a2[root_index] != newtree[0]:
        root_index += 1
    left_length = root_index - b_start
    newtree[1] = solve(a_start,a_start+left_length-1,b_start,root_index-1)
    newtree[2] = solve(a_start+left_length,a_end-1,root_index+1,b_end)
    return newtree
tree = solve(0,n-1,0,n-1)
#print(tree)
if tree:
    res = []
    queue = [tree]
    while queue:
        print(queue)
        now_nodes = []
        next_level = []
        for x in queue:
            now_nodes.append(x[0])
            if x[1]:
                next_level.append(x[1])
            if x[2]:
                next_level.append(x[2])
        res.append(now_nodes)
        queue = next_level
cnt = 0
print(tree)
print(res)
for x in res:
    for y in x:
        if cnt:
            print(" ",end ='')
        else :
            cnt = 1
        print(y,end = '')

2、L1-058 6翻了

num = input()
num += '?'
ans = 0
answer = ''
for i in num:
    if i == '6':
        ans += 1
    else :
        if i == '?':
            i = ''
        if ans > 9:
            answer += '27'+i
        elif ans > 3:
            answer += '9'+i
        else :
            answer += '6'*ans+i
        ans = 0
print(answer)

3、L2-008 最长对称子串

#include<bits/stdc++.h> 
using namespace std;
const int MAX=110000+10;  
char s[MAX*2];  
int p[MAX*2]; 
int manachar()
{
	memset(p,0,sizeof(p));
    int len = strlen(s);
    int id = 0;
    int maxlen = 0;
    for(int i = len;i >= 0;i--){
        s[i+i+2] = s[i];
        s[i+i+1] = '#';
    }
    s[0] = '*';
	for(int i = 2;i < 2*len + 1;i++){
        if(p[id] + id > i){
            p[i] = p[2*id - i] < p[id]+id-i ? p[2*id - i] : p[id]+id-i;
        }else{
            p[i] = 1;
        }
        while(s[i - p[i]] == s[i + p[i]]){
            p[i]++;
        }
        if(id + p[id] < i + p[i]){
            id = i;
        }
        if(maxlen < p[i]){
            maxlen = p[i];
        }
    }
    return maxlen-1;
}
int main() 
{
	std::ios::sync_with_stdio(false);
	string ss;
	getline(cin,ss);
	for(int i=0;i<ss.length();i++)
	{
		s[i] = ss[i];
	}
    int ans = manachar();
    cout << ans << endl;
    return 0;
}

相关文章:

  • 现代密码学体系架构设计原则与实践:基于Python的实现与GPU加速GUI演示
  • 虚拟系统配置
  • react中的fiber和初次渲染
  • 揭开AI-OPS 的神秘面纱 第二讲-技术架构与选型分析 -- 数据采集层技术架构与组件选型分析
  • Seata
  • 从 Faith 与 Belief 的语义与语境辨析中解析其宗教哲学内涵
  • PyTorch中的损失函数:F.nll_loss 与 nn.CrossEntropyLoss
  • react拖曳组件react-dnd的简单封装使用
  • 计算机网络篇:基础知识总结与基于长期主义的内容更新
  • Vue 使用 vue-router 时,多级嵌套路由缓存问题处理
  • AWS Cloud9实战:零配置+协作编程+无缝集成AWS的黑科技IDE
  • SyntaxError: Invalid regular expression flag “x“
  • ShardingSphere 和 Spring 的动态数据源切换机制的对比以及原理
  • 力扣146 - LRU缓存
  • 恶劣天候三维目标检测论文列表整理
  • 海思Hi3516DV300交叉编译opencv
  • 【C#】详解C#中的内存管理机制
  • 如何在PHP中实现API版本管理:保持向后兼容性
  • 数据结构--顺序表
  • Elasticsearch 2025/3/7
  • 以下可以制作二维码的网站为/网上在线看视频为什么卡
  • 企业网站在线客服怎么做/网络营销优化
  • 宁波如何建网站/东莞seo建站投放
  • 网站产品页面设计/网站开发公司
  • 域名除了做网站还能做什么/域名注册网站系统
  • 上传到网站根目录/大连百度关键词优化