在一行上输入一个长度为
,仅由小写字母构成的字符串
,代表待处理的字符串。
在一行上输出一个字符串,代表删除后的答案。保证这个字符串至少包含一个字符。
aabcddd
aaddd
在这个样例中,出现次数最少的字符为
和
,因此需要同时删除这两个字符。
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
const str = await readline()
const map = new Map()
for (let i = 0; i < str.length; i++) {
const key = str[i]
map.set(key, (map.get(key) || 0) + 1)
}
const sortArr = Array.from(map).sort((a, b) => {
return a[1] > b[1] ? 1 : -1
})
const delChar = [sortArr[0][0]]
for (let i = 1; i < sortArr.length - 1; i++) {
delChar.push(sortArr[i][0])
if (sortArr[i][1] !== sortArr[i + 1][1]) {
break
}
}
let resStr = str
for (let i = 0; i < delChar.length; i++) {
resStr = resStr.replaceAll(delChar[i], '')
}
console.log(resStr)
}()
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// Write your code here
let line = await readline()
let arr = line.split('')
arrJson = {}
arr.forEach(item => {
if(arrJson[item]) {
arrJson[item] = Number(arrJson[item]) + 1
} else {
arrJson[item] = 1
}
})
let newArr = []
for(key in arrJson) {
newArr.push(arrJson[key])
}
let minNum = newArr[0]
for(let i = 1; i < newArr.length + 1; i++) {
if(minNum > newArr[i]) minNum = newArr[i]
}
let newData = ''
let lineArr = []
for(let key in arrJson) {
if (arrJson[key] > minNum) {
lineArr.push(key)
}
}
let str = ''
arr.forEach(item => {
if(lineArr.indexOf(item) >= 0) {
str = str + item
}
})
console.log(str)
}()
function deleteStr(line){
let hash = {}
for(let i = 0; i<line.length; i++){
if(!hash[line[i]]){
hash[line[i]] = 1
}else{
hash[line[i]]++
}
}
// 求出hash中元素最少的个数?
let min = hash[line[0]]
for(let key in hash){
if(hash[key] < min){
min = hash[key]
}
}
// 将个数等于min的字符全部删除
for(let key in hash){
if(hash[key] == min) {
let reg = new RegExp(key,"g")
line = line.replace(reg,"")
}
}
console.log(line)
} const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const lines = [];
rl.on("line", function (line) {
const lines = [...line]
const obj={}
lines.forEach((char) => {
obj[char] = (obj[char]||0) + 1
})
let values = Object.values(obj), min = values[0]
values.forEach((item)=> {
min = Math.min(item, min)
})
Object.keys(obj).forEach((key)=> {
if (obj[key] ===min) {
line = line.replace(new RegExp(key,'g'), '')
}
})
console.log(line)
});
先分解数组
在用对象key value值 计算每个字符次数 key为字符,value为次数
拿出最小次数
然后通过replace替换最小次数字符
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
const arr = [];
rl.on('line', function (line) {
if (line === "") {
rl.close();
} else {
arr.push(line);
}
});
rl.on("close", function() {
arr.forEach(string => {
// 记录字符和字符出现的次数
const charArr = [];
const countArr = [];
for(char of string) {
const index = charArr.indexOf(char);
if (index === -1) {
charArr.push(char);
countArr.push(1);
} else {
countArr[index]++;
}
}
// 计算出现次数最少的字符
const min = Math.min(...countArr);
let minChars = "";
countArr.forEach((count, i) => {
if (count === min) {
minChars = minChars + charArr[i];
}
});
// 将出现次数最少的字符删除
const pattern = "[" + minChars + "]";
const resultStr = string.replace(new RegExp(pattern, "g"), "");
console.log(resultStr);
});
}); const readline = require("readline");
const rl = readline.createInterface({
input:process.stdin,
output:process.stdout
});
rl.on("line",function(line){
var list = line.split('');
//按字典序排序
list.sort();
//console.log(list);
//计算次数
let obj = {};
for(let i=0;i<list.length;i++){
if (obj[list[i]]){
obj[list[i]]++;
} else {
obj[list[i]] = 1;
}
}
//console.log(obj);
//obj对象转成数组
var arr=[];
for(let key in obj){
arr.push({"key":key,"value":obj[key]});
}
//console.log(arr);
//按次数排序,降序
arr.sort((a,b)=>{
return b.value-a.value;
})
//console.log(arr);
//找出所有大于最后一个字符次数的结果集
var result=[];
arr.forEach(item=>{
if(item.value>arr[arr.length-1].value){
result.push(item);
}
});
//console.log(result);
//比较输出
var str="";
line.split('').forEach(li=>{
result.forEach(item=>{
if(li==item.key){
str+=item.key;
}
})
})
console.log(str);
}); let line
while(line = readline()) {
let arr = [...new Set(line.split(''))]
let letter = []
for(let item of arr) {
let index = line.split('').filter(e => e === item).length
letter[index] ? letter[index].push(item) : letter[index] = [item]
}
letter = letter.filter(() => true)
let reg = new RegExp(`[${letter[0].join('')}]`, 'g')
console.log(line.replace(reg, ''))
} var readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
function delMin(str) {
const countObj = {}
const strArr = Array.from(str)
strArr.forEach(item => {
if (countObj[item]) {
countObj[item] += 1
} else {
countObj[item] = 1
}
})
const minTime = Math.min(...(Object.keys(countObj)).map(item => {
return countObj[item]
}))
const delFLag = Object.keys(countObj).filter(item => countObj[item] === minTime)
for (let i = 0; i<strArr.length; i++) {
if (delFLag.indexOf(strArr[i]) > -1) {
strArr[i] = ''
}
}
console.log(strArr.join(''))
}
rl.on('line', function(line){
delMin(line)
}); function deletString(str2){
arr2=str2.split('');
//reduce求出每个字符对应的个数
var result=arr2.reduce(function(allString,name){ if(name in allString){ allString[name]++; } else{ allString[name]=1; } return allString;
},{});
//排序取最小值
var arr=Object.keys(result).sort(function(v1,v2){ return result[v1]-result[v2]
})
//将满足条件的最小字符放入一个数组
var arr3=[]
var min=result[arr[0]]
for(var i=0;i<arr.length;i++){ if(result[arr[i]]===min){ arr3.push(arr[i]) }
}
//正则表达式删除最小的元素
for(var i=0;i<arr3.length;i++){ var reg = new RegExp(arr3[i],"g");
var a=str2.replace(reg,""); str2=a;
}
return str2;
}
while(line = readline()){
console.log(deletString(line));
}
function def_str(par){ var arr=par.split(""); var obj={}; var min=99999; void function(){ for(var i=0, len=arr.length; i<len; i++){ if(obj.hasOwnProperty(arr[i])){ obj[arr[i]]++; }else{ obj[arr[i]]=1; } } }(); void function(){ for(var key in obj){ if(obj[key]<min){ min=obj[key]; } } }(); void function(){ for(var key in obj){ if(obj[key]===min){ arr.splice(arr.indexOf(key),1); } } }(); return arr.join("");
}
var line;
while(line=readline()){
var str=line;
var res=def_str(str);
console.log(res);
}
while(line = readline()){
console.log(deleChar(line));
}
function deleChar(str){
//hashmap字符对应字符个数
var obj = {};
for(var i=0; i<str.length; i++){
if(str[i] in obj){
obj[str[i]]++;
}else{
obj[str[i]]=1;
}
}
//排序取最小值
var arr = Object.keys(obj).sort(function(v1,v2){
return obj[v1]-obj[v2];
});
var arr2 = [];
var cnt = obj[arr[0]];
//求出满足最小值得字符
for(var i=0; i<arr.length; i++){
if(obj[arr[i]] == cnt){
arr2.push(arr[i]);
}
}
//通过正则表达式删除
var result = '';
for(var i=0; i<arr2.length; i++){
var regx = new RegExp(arr[i], 'g');
result = str.replace(regx, '');
str = result;
}
return str;
}