2022年8月蓝桥杯蓝桥C++(STEMA)中/高级
STEMA
2022
2023-02-27 13:37:50
56次
一、编程题
操作字符串
题目描述:
给定两个字符串S1和S2(1<S1长度<100,1<S2长度<100),然后按照以下三种操作,将S1转为S2,问最少操作几次可以完成。
可对字符串进行三种操作:
1)插入一个字符;
2)删除一个字符;
3)修改一个字符。
例如:
S1=abcd,S2=ebde,S1转为S2最少需要操作3次,
第一次操作:将abcd中的字符a修改成e,修改后为ebcd;
第二次操作:将ebcd中的字符c删除,删除后为ebd;
第三次操作:在ebd末端插入字符e,插入后为ebde,
经过3次操作,字符串abcd转为字符串ebde。
输入描述:
第一行输入一个字符串S1(1<S1长度<100)
第二行输入一个字符串S2(1<S2长度<100)
输出描述:
输出一个整数,表示将S1转为S2的最少操作次数
样例输入:
abcd ebde
样例输出:
3
【知识点】 蓝桥杯C++中/高级
编程实现:
路径最小和
题目描述:
有一个N*M的矩阵方格,每个方格中都有一个正整数,现从左上角方格出发向右下角方格移动,每次只能向下或句右移动一个方格,请你找出一条最小路径、并输出该路径上的正整数之和。
最小路径:这条路径上的正整数之和最小。
例如:
N=2、M=3。2*3的矩阵方格中的正整数如下,按照移动规则,从左上角方格移动到右下角方格的路径共3条,分别为1->3->5->6;1->3->4->6;1->2->4->6。3条路径上的正整数之和分别为15、14和13。其中正整故之和最小的一条路径是1->2->4->6。和为13。故输出13。
输入描述
第一行输入两个正整数N和M(2≤N≤100,2≤M≤100),N表示矩阵方格的行数,M表示矩阵方格的列数,两个正整数之间以一个空格隔开
第二行开始输入N行,每行M平整数(1≤正整数≤200)。正整数之间以一个空格隔开
输出描述
输出一个整数,表示最小路径上的正整数之和
样例输入
2 3 1 3 5 2 4 6
样例输出
13
【知识点】 蓝桥杯C++中/高级
编程实现:
去重
题目描述:
给定一个长度小于200的字符串s,且字符中只包含小写字母,然后按照以下要求对字符串s进行去重,并输出去重后的字符串。
要求:
1)如果有重复出现的字母,只保留1个,其他的去掉;
2)不得改变各字母相对位置;
3)保证去重后的字符串的字典序最小。
例如:
s=“cacd”,重复的字母有c,如果去掉第一个字母c,结果为acd;如果去掉第二个字母c结果为cad.比较两个去重后的结果,第一个结果的字典序小于第二个结果的字典序,故选择去掉第一个c,输出acd。
输入描述
输入一个长度小于200的字符串s。且字符串中只包含小写字母
输出描述
按照要求对字符串s进行去重,并输出
样例输入
cdacd
样例输出
acd
提示信息:
字典序大小,是指字符串中字母在字母表中的先后顺序,即字母表中越靠前的字母,字典序越小。
例如:两个字符串acd和cad,两个字符率的第一个字母分别为“a”和“c”,其中“a”在字母表中排在“c”的前边,故字符串acd字典序小于字符出cad。假如第一个字母相同。就比较第二个字母,以此类推。
【知识点】 蓝桥杯C++中/高级
