P1030 求先序排列 (一个非常棒的写法)
2024-09-05 09:05:43
理论正确就是真正的正确,误。。。
就是找嘛,找到每一个对应字符,然后对应的左右子树的区间,然后就可以了。
#include <bits/stdc++.h>
using namespace std;
char mid[100];
char suff[100];
void getpre(int ml,int mr,int sl,int sr)
{
// printf("%d %d %d %d\n",ml,mr,sl,sr);
if (ml>mr) {
return ;
}
if (ml==mr) {
printf("%c",mid[ml]);
return ;
}
char root=suff[sr];
printf("%c",root);
int i;
for (i=ml;i<=mr;i++) {
if (root==mid[i]) break;
}
char rs=(i+1)>mr?'#':mid[i+1];
int j;
for (j=sl;j<=sr;j++) {
if (rs==suff[j]) break;
}
j=(j>sr)?sr:j;
getpre(ml,i-1,sl,j-1);
getpre(i+1,mr,j,sr-1);
}
int main()
{
scanf("%s",mid);
scanf("%s",suff);
int len=strlen(mid);
getpre(0,len-1,0,len-1);
return 0;
}
/*
BADCE
BDECA
*/
最新文章
- 使用JAVA编写电话薄程序,具备添加,查找,删除等功能
- VBA用户控件
- Spring AOP 四大通知
- 解决Linux性能问题的前60秒
- 区间dp笔记√
- 解决浏览器background-image属性不支持css3动画
- VoltDB公布4.0版本号,大步提高内存实时分析速度,进军操作数据库市场
- 可编辑tab选项卡
- 从一个PHP数据生成 CSV 文件
- POJ 1472 Coins (多重背包+滚动数组)
- 由于检索用户的本地应用程序数据路径时出错,导致无法生成 SQL Server 的用户实例
- fiddler2 中文乱码问题
- P1197 [JSOI2008]星球大战
- 多态以及 LeetCode 每日一题
- day 15 模块、起别名、from导入
- java程序中的乱码方案
- P1440 求m区间内的最小值--洛谷luogu
- 【移动端 Web】怎么循序渐进地开发一个移动端页面
- vue实现双向绑定的简单原理: defineProperty
- sql语句——行列互换