笔试时间:2021-04-17 15:00-17:00
笔试题目:
一。选择题(40分,40题)
二。编程题(60分,2题)
1.回文数变换
时间限制: 3000MS
内存限制: 589824KB
题目描述:
所谓回文数就是一个数字,从左边读和从右边读的结果都是一样的,例如12321。
现在有一个只包含1、2、3、4的数字,你可以通过在任意位置增加一位数字或者删除一位数字来将其变换成一个回文数。但是增加或删除不同数字所需要的代价是不一样的。
已知增加和删除每个数字的代价如下:
增加一个1,代价:100;删除一个1,代价:120。
增加一个2,代价:200;删除一个2,代价:350。
增加一个3,代价:360;删除一个3,代价:200。
增加一个4,代价:220;删除一个4,代价:320
请问如何通过最少的代价将一个数字变换为一个回文数。当然,如果一个数字本身已经是一个回文数(包括一位数,例如:2),那么变换的代价为0。
输入描述
单组输入。
输入一个由1、2、3、4组成的正整数,正整数位数<=100位。【提示:采用字符串输入】
输出描述
输出一个整数,表示将输入数字变换为一个回文数所需的最少代价。
样例输入
12322
样例输出
300
提示
增加一个1并增加一个2,将输入正整数变为1223221或者2123212,所需代价最小,为:100+200=300。
内存限制: 589824KB
题目描述:
所谓回文数就是一个数字,从左边读和从右边读的结果都是一样的,例如12321。
现在有一个只包含1、2、3、4的数字,你可以通过在任意位置增加一位数字或者删除一位数字来将其变换成一个回文数。但是增加或删除不同数字所需要的代价是不一样的。
已知增加和删除每个数字的代价如下:
增加一个1,代价:100;删除一个1,代价:120。
增加一个2,代价:200;删除一个2,代价:350。
增加一个3,代价:360;删除一个3,代价:200。
增加一个4,代价:220;删除一个4,代价:320
请问如何通过最少的代价将一个数字变换为一个回文数。当然,如果一个数字本身已经是一个回文数(包括一位数,例如:2),那么变换的代价为0。
输入描述
单组输入。
输入一个由1、2、3、4组成的正整数,正整数位数<=100位。【提示:采用字符串输入】
输出描述
输出一个整数,表示将输入数字变换为一个回文数所需的最少代价。
样例输入
12322
样例输出
300
提示
增加一个1并增加一个2,将输入正整数变为1223221或者2123212,所需代价最小,为:100+200=300。
2.ab串
时间限制: 3000MS
内存限制: 589824KB
题目描述:
小明得到一个只包含a,b两个字符的字符串,但是小明不希望在这个字符串里a出现在b左边。现在他可以将”ab”这样的子串替换成”bba”,在原串中的相对位置不变。输出小明最少需要操作多少次才能让一个给定字符串所有a都在b的右边。
输入描述
一个只包含a,b字符的字符串,长度不超过100000。
输出描述
最小的操作次数。结果对1000000007取模。
样例输入
ab
样例输出
1
提示
样例1解释:ab到bba
样例2:
输入:aab
输出:3
样例2解释:aab到abba到bbaba到bbbbaa
时间限制: 3000MS
内存限制: 589824KB
题目描述:
小明得到一个只包含a,b两个字符的字符串,但是小明不希望在这个字符串里a出现在b左边。现在他可以将”ab”这样的子串替换成”bba”,在原串中的相对位置不变。输出小明最少需要操作多少次才能让一个给定字符串所有a都在b的右边。
输入描述
一个只包含a,b字符的字符串,长度不超过100000。
输出描述
最小的操作次数。结果对1000000007取模。
样例输入
ab
样例输出
1
提示
样例1解释:ab到bba
样例2:
输入:aab
输出:3
样例2解释:aab到abba到bbaba到bbbbaa
全部评论
(6) 回帖