n =int(input())
a1 =list(map(int,input().split()))
a2 =list(map(int,input().split()))defsolve(a_start,a_end,b_start,b_end):if a_start > a_end:returnNone
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 =0print(tree)print(res)for x in res:for y in x:if cnt:print(" ",end ='')else:
cnt =1print(y,end ='')
2、L1-058 6翻了
num =input()
num +='?'
ans =0
answer =''for i in num:if i =='6':
ans +=1else:if i =='?':
i =''if ans >9:
answer +='27'+i
elif ans >3:
answer +='9'+i
else:
answer +='6'*ans+i
ans =0print(answer)
3、L2-008 最长对称子串
#include<bits/stdc++.h>usingnamespace std;constint MAX=110000+10;char s[MAX*2];int p[MAX*2];intmanachar(){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;}intmain(){
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;return0;}