一、对于字符串x和y, 如果擦除x中的某些字母(有可能全擦掉或者都不擦)能够得到y,我们就称y是x的子序列。例如.”ncd”是”nowcoder”的子序列,而”xt”不是。
现在对于给定的一个字符串s,请计算出字典序最大的s的子序列。
输入描述:
输入包括一行,一个字符串s,字符串s长度length(1 ≤ length ≤ 50).
s中每个字符都是小写字母
输出描述:
输出一个字符串,即字典序最大的s的子序列。
示例1
输入
test
输出
tt
var str = readline();
var len = str.length;
var max = str[len-1];
var result = str[len-1];
for(var i=len-2;i >= 0;i--) {
if(str[i] >= max) {
result = str[i] + result;
max = str[i];
}
}
print(result);
二、小度有一个小写字母组成的字符串s.字符串s已经被写在墙上了.
小度还有很多卡片,每个卡片上有一个小写字母,组成一个字符串t。小度可以选择字符串t中任意一个字符,然后覆盖在字符串s的一个字符之上。小度想知道在选取一些卡片覆盖s的一些字符之后,可以得到的字典序最大的字符串是什么。
输入描述:
输入包括两行,第一行一个字符串s,字符串s长度length(1 ≤ length ≤ 50),s中每个字符都是小写字母
第二行一个字符串t,字符串t长度length(1 ≤ length ≤ 50),t中每个字符都是小写字母
输出描述:
输出一个字符串,即可以得到的字典序最大字符串
示例1
输入
fedcba
ee
输出
feeeba
var s = readline();
var t = readline();
s = s.split('');
t = t.split('').sort().reverse();
for(var i = 0;i < t.length;i++){
for(var j = 0;j < s.length ; j++) {
if(s[j] < t[i]) {
s[j] = t[i];
break;
}
}
}
print(s.join(''));