首页 > 试题广场 >

胜者为王

[编程题]胜者为王
  • 热度指数:2105 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小明,小王,小李三人正在进行一个游戏。游戏有个回合,每个人都有一个字符串,三人的字符串长度相等。每个回合他们必须更改自己字符串中的一个字母。最后每个人的分数是自己的字符串中出现次数最多的字母的数量。分数最高者获胜,输出获胜者名字,小明获胜输出xiaoming,小王获胜输出xiaowang,小李获胜输出xiaoli,如果有两个或者两个以上相同的最高分输出draw。

输入描述:
第一个一个整数
第二行字符串,表示小明的字符串。
第二行字符串,表示小王的字符串。
第二行字符串,表示小李的字符串。


输出描述:
输出一行一个字符串,表示游戏结果。
示例1

输入

7
treasurehunt
threefriends
hiCodeforces

输出

xiaowang
   var n = readline()
    // var Ming='treasurehunt'
    var Ming = readline()
    var mingObj = {}
    // var Wang='threefriends'
    var Wang = readline()
    var wangObj = {}
    // var Li='hiCodeforces'
    var Li = readline()
    var liObj = {}

    function setObj(str, obj) {
        for (var i = 0; i < str.length; i++) {
            if (!obj[str.charAt(i)]) {
                obj[str.charAt(i)] = 1
            } else {
                obj[str.charAt(i)]++
            }
        }
    }
    setObj(Ming, mingObj)
    setObj(Wang, wangObj)
    setObj(Li, liObj)
    var mingCount = 0
    var wangCount = 0
    var liCount = 0
    
    function findMax(n,str,count, obj) {
        for (var i in obj) {
            if (obj[i] > count) {
                count = obj[i] 
            }
        }
        if(n>str.length-count){
            count=str.length
        }
        // for(var i=0;i<n;i++){
        //     if(count<str.length){
        //         count++
        //     }else{
        //         count--
        //     }
        // }
        return count

    }
    mingCount=findMax(n,Ming,mingCount, mingObj)
    wangCount=findMax(n,Wang,wangCount, wangObj)
    liCount=findMax(n,Li,liCount, liObj)
    
    var max=Math.max(mingCount, wangCount, liCount)
    var arr = []
    arr.push(mingCount, wangCount, liCount)
    if (arr.indexOf(max) !== -1&&arr.indexOf(max)==arr.lastIndexOf(max)) {
        if (mingCount == max) {
            console.log("xiaoming");
        } else if (wangCount == max) {
            console.log("xiaowang");
        } else {
            console.log("xiaoli");
        }
    }else{
        console.log("draw");
    }
这道题有点坑啊,它又说每轮必须改一个字母,然而当n的回合足够让字符串全部变成同一个字母的时候它就不用改了
发表于 2021-08-18 14:01:31 回复(1)

热门推荐

通过挑战的用户

胜者为王