uva10152

news/2025/2/23 5:05:27/

题意:给出两个字符串序列, 一个是现有序列, 一个是目标序列。 在现有序列中只有这样的操作:把这个字符串置顶。 求从现有序列变换到目标序列的最快的变换方式, 按顺序    输出要置顶的字符串。

思路:从目标序列的底部往上与现有序列匹配, 匹配方式是若现有序列的字符串与之不相等则跳过, 直到找到与之相等的, 当现有序列匹配完后。目标序列为匹配的就是要置顶     的字符。 因为是置顶, 所以顺序要相反。 如图:

   

从目标序列的C开始,  c与c 匹配, 进入下一个; e与e匹配, 进入下一个; d与b 不匹配, 跳过b, d与d匹配, 进入下一个; b与a不匹配,跳过a,到达顶部;

然后将目标序列框框外的就是要置顶的。

算法复杂度: < O(N)


代码:

#include <cstdio>
#include <cstring>
using namespace std;#define MAX_N 205
#define MAX_LEN 300void enterStr(int, char *[MAX_N]);
void deleteStr(int, char *[MAX_N]);int main()
{int cases;scanf("%d%*c", &cases);for (int i = 0; i < cases; i++) {int n;char *old[MAX_N], *target[MAX_N];scanf("%d%*c", &n);enterStr(n, old);enterStr(n, target);int j, k;for (j = n, k = n; k > 0; k--) {if (strcmp(old[k], target[j]) == 0) {j--;}}for (int l = j; l > 0; l--) {printf("%s", target[l]);}printf("\n");deleteStr(n, old);deleteStr(n, target);}return 0;
}void enterStr(int n, char *str[MAX_N])
{char tp[MAX_LEN];for (int i = 1; i <= n; i++) {fgets(tp, sizeof(tp), stdin);int len = strlen(tp);str[i] = new char[len + 1];	strcpy(str[i], tp);}
}void deleteStr(int n, char *str[MAX_N])
{for (int i = 1; i <= n; i++) {if (str[i] != NULL) {delete str[i];str[i] = NULL;}}
}



http://www.ppmy.cn/news/822582.html

相关文章

uva1515

这个题属于最大流算法的灵活运用~~ 首先像刘汝佳所说的&#xff0c;根据“隔开”想到了割的概念&#xff0c;那么就可以把草放在一列&#xff0c;把洞放在一列&#xff0c;砍断每一条边的费用是b&#xff1b; 现在引入源节点s和汇点t&#xff0c;s连接所有的草&#xff0c;砍…

UVa 10125 - Sumsets

题目链接&#xff1a; UVa : http://uva.onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&category24&pageshow_problem&problem1066 poj : http://poj.org/problem?id2549 类型&#xff1a; 哈希&#xff0c; 二分查找 原题&#xff1a; Gi…

1351: 小鱼比可爱Ⅱ

1351: 小鱼比可爱Ⅱ 题目描述 小鱼最近参加了一个“比可爱”比赛&#xff0c;参赛的鱼被从左到右排成一排&#xff0c;编号1~n&#xff0c;头都朝向右边&#xff0c;然后每只鱼会得到一个整数数值&#xff0c;表示这只鱼的可爱程度&#xff0c;很显然整数越大&#xff0c;表示…

ThreadLocal(全)- 代码实现

ThreadLocal是Java中一个非常重要的线程技术。它可以让每个线程都拥有自己的变量副本&#xff0c;避免了线程间的竞争和数据泄露问题。在本文中&#xff0c;我们将详细介绍ThreadLocal的定义、用法及其优点。 ThreadLocal是Java中一个用来实现线程封闭技术的类。它提供了一个本…

毕业季高薪指南

1.程序员的优势 2.程序员的一天 3.一般的项目流程 4.职业成长路线 5.如何学习 6.Java学习路线 7.面试答题技巧 一.程序员的优势 相对自由、职场环境简单、相对较高的薪资、公平的竞争环境、市场需求量较大 二.程序员的一天 1. 弹性上下班&#xff0c;不打卡。只要能按…

安卓dj专业打碟机软件_学DJ打碟 - Rane声卡连接

上一篇内容中&#xff0c;老师讲过在学DJ打碟的时候&#xff0c;是离不开对软件方面的操作&#xff0c;其实每一个学习过程&#xff0c;当你学会之后&#xff0c;在“回头看”的时候&#xff0c;都会觉得&#xff1a;原来学DJ打碟这么简单啊&#xff0c;这就是已经学习过的人会…

安卓dj专业打碟机软件_让专业DJ在手机上打碟,一加7 Pro做到了

DJ是一种职业&#xff0c;其工作最重要的器材有两个打碟机和混音台。简单讲他们的工作就是把不同的音乐通过打碟机无缝的链接在一起&#xff0c;通过调音台进行调音然后播放出去&#xff0c;因此最重要的就是手速以及打碟机的响应速度。所以DJ们对于打碟机的要求是非常苛刻的&a…

安卓dj专业打碟机软件_学DJ打碟 Rane声卡连接

上一篇内容中&#xff0c;老师讲过在学DJ打碟的时候&#xff0c;是离不开对软件方面的操作&#xff0c;其实每一个学习过程&#xff0c;当你学会之后&#xff0c;在“回头看”的时候&#xff0c;都会觉得&#xff1a;原来学DJ打碟这么简单啊&#xff0c;这就是已经学习过的人会…