0


CSDN竞赛第6期第3题JavaScript版本思路分享

CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16
(请不要删掉此地址)

努力是为了让自己不平庸,这次CSDN竞赛一波三折,最终还是完成了比赛。答题初始,就耽误了50分钟,提交代码测试页面没有反应,以及出现了按下insert键相同情况,最终刷新解决。在比赛结束那一刻,最后一题代码通过所有用例。完美收官

前言

本次大赛堪称完美,大家都表现出了很高的技术水平,一众百分获得者,场面甚是宏伟。感谢CSDN官方给了我们展示技术的舞台,希望CSDN竞赛越来越好。

参赛流程

1.手机及网页端均可报名,建议在网页端报名

2.比赛过程中,复制粘贴有次数限制,注意次数。

3.比赛过程中,不要切除画面,所以比赛前要把QQ微信等退出,以免弹框影响比赛。

4.比赛过程中,如果提交没反应等,或有其他不正常的情况,可以尝试刷新页面。

题目复盘

CSDN竞赛第6期第3题

已知字符串str,str表示邮箱的不标准格式。 其中”.”会被记录成”dot”,”@”记录成”at”。 写一个程序将str转化成可用的邮箱格式。(可用格式中字符串中除了开头结尾所有”dot”,都会被转换,”at”只会被转化一次,开头结尾的不转化)

测试案例1:输入 "xyatsinadotcomdotcn"

输出 "xy@sina.com.cn"

测试案例2:输入 "atxyatsinadotcomdotcn"

输出 "atxy@sina.com.cn"

解题思路

思路1

<script>

        let getEmail = function (str) {

            var result;

            // TODO: 请在此编写代码

            while (str.includes('dot')) { str = str.replace('dot', '.') }

            // 直接使用这个替换,只会替换第一次遇见的,如果头有at,就会被误换

            // str = str.replace('at', '@')

            // 将所有的at都替换

            while (str.includes('at')) { str = str.replace('at', '@') }

            // 检测如果头或尾是@,则改为at

            if (str[0] === "@") { str = str.replace('@', "at") }

            if (str[str.length - 1] === "@") { str = str.replace('@', "at") }

            result = str

            return result;

        }

        let res1 = getEmail('xyatsinadotcomdotcn')

        console.log(res1)//[email protected]

        let res2 = getEmail('atxyatsinadotcomdotcn')

        console.log(res2)//[email protected]

</script>

思路2

   <script>
        let getEmail = function (str) {
            var result;
            // TODO: 请在此编写代码 
            while (str.includes('dot')) { str = str.replace('dot', '.') }
            // 直接使用这个替换,只会替换第一次遇见的,如果头有at,就会被误换
            // str = str.replace('at', '@')
            let cen = str.slice(1, str.length - 1).replace('at', '@')
            // 拼接
            result = str[0].concat(cen, str[str.length - 1])
            return result;
        }
        let res1 = getEmail('xyatsinadotcomdotcn')
        console.log(res1)//[email protected]
        let res2 = getEmail('atxyatsinadotcomdotcn')
        console.log(res2)//[email protected]
    </script>

经验心得

本次比赛,充分利用了之前所学的知识,所以平时的学习积累非常重要,只有熟练了,你在竞赛时,才能运用自如。


本文转载自: https://blog.csdn.net/m0_72870863/article/details/126968100
版权归原作者 divpeople 所有, 如有侵权,请联系我们删除。

“CSDN竞赛第6期第3题JavaScript版本思路分享”的评论:

还没有评论