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)//xy@sina.com.cn

        let res2 = getEmail('atxyatsinadotcomdotcn')

        console.log(res2)//atxy@sina.com.cn

</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)//xy@sina.com.cn
        let res2 = getEmail('atxyatsinadotcomdotcn')
        console.log(res2)//atxy@sina.com.cn
    </script>

经验心得

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

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大怪冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值