位置: 编程技术 - 正文

字符串反转_JavaScript(字符串反转C语言代码)

编辑:rootadmin

推荐整理分享字符串反转_JavaScript(字符串反转C语言代码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:字符串反转函数,字符串反转java,字符串反转js,字符串反转函数,字符串反转的方法,字符串反转C语言,字符串反转C语言,字符串反转函数,内容如对您有帮助,希望把文章链接给更多的朋友!

今天在freeCodeCamp上面刷题,碰到一题是有关于字符串反转。反转一个字符串是JavaScript中常见的面试题之一。可能面试官会给你一个字符串“Hello Word!”,让你通过JavaScript的方法,将其变成"!droW olleH"。

我也是初学者,利用前面所学数组相关的知识以及题目的提示,我算是过关了,后来想,是不是还有其他的方法能破此题呢?搜索了一下,还是有不少的方法,这里把这些方法罗列一下,以备后面可以使用。

要做的事情

我们要做的事情:

将提供的字符串反向显示在反向字符串之前,需要将字符串转化成一个数组最终结果依旧是一个字符串

接下来,我们一起看看有哪些方法能实现上述要求。

使用内置函数

在练习题中,提示我们可以使用三种方法配合,能顺利让一个字符串反向显示:

String.prototype.split()Array.prototype.reverse()Array.prototype.join()

简单的过一下:

split()方法将一个字符串对象的每个字符拆出来,并且将每个字符串当成数组的每个元素reverse()方法用来改变数组,将数组中的元素倒个序排列,第一个数组元素成为最后一个,最后一个变成第一个join()方法将数组中的所有元素边接成一个字符串

来看个实例:

将上面的方法简化一下,可以写成这样:

使用一个递减循环遍历将字符串反转

这种方法使用的是一个for循环给原字符串做一个递减遍历,然后将遍历的字符串重新合并成一个新字符串:

简单的看看字符串遍历的过程。假设需要将字符串"hello"反转。其整个遍历过程如下表所示:

迭代顺序对应i的值新字符串 newString 每次迭代 str.length - 1 newString + str[i] 第一次迭代 5 - 1 = 4 "" + "o" = "o" 第二次迭代 4 - 1 = 3 "o" + "l" = "ol" 第三次迭代 3 - 1 = 2 "ol" + "l" = "oll" 第四次迭代 2 - 1 = 1 "oll" + "e" = "olle" 第五次迭代 1 - 1 = 0 "olle" + "h" = "olleh"

其实上面的for循环,也可以换成while循环:

在while循环中substring()方法。substring() 返回字符串两个索引之间(或到字符串末尾)的子串。

字符串反转_JavaScript(字符串反转C语言代码)

使用递归实现字符串反向

使用String.prototype.substr()和String.prototype.charAt()方法也可以将一个字符串反向。

substr() 方法返回字符串中从指定位置开始到指定长度的子字符串。比如:

charAt() 方法返回字符串中指定位置的字符。字符串中的字符从左向右索引,第一个字符的索引值为 0,最后一个字符(假设该字符位于字符串 stringName 中)的索引值为 stringName.length - 1。 如果指定的 index 值超出了该范围,则返回一个空字符串。

结合起来,我们可以这样做实现字符串反向:

第一部分的递归方法。你需要记住,你不会只调用一次,你将会有几个嵌套的调用。

每次调用str === "&#;"reverseString(str.subst(1))+ str.charAt(0) 第一次调用 reverseString("Hello") reverseString("ello") + "h" 第二次调用 reverseString("ello") reverseString("llo") + "e" 第三次调用 reverseString("llo") reverseString("lo") + "l" 第四次调用 reverseString("lo") reverseString("o") + "l" 第五次调用 reverseString("o") reverseString("") + "o"

第二部分的递归方法。

每次调用返回 第五次调用 reverseString("") + "o" = "o" 第四次调用 reverseString("o") + "l" = "o" + "l" 第三次调用 reverseString("lo") + "l" = "o" + "l" + "l" 第二次调用 reverserString("llo") + "e" = "o" + "l" + "l" + "e" 第一次调用 reverserString("ello") + "h" = "o" + "l" + "l" + "e" + "h"

上面的方法还可以继续改良一下,改成三元操作符

还可以换成这样的方式

其他方法

除了上面的方法之外,其实还有其他一些方法:

方法一方法二方法三方法四方法五方法六ES6的方法

在ES6中,可以变得更为简单一些,如:

[...str].reverse().join('');

或[...str].reduceRight( (prev, curr) => prev + curr );

或者:

const reverse = str => str && reverse(str.substr(1)) + str[0];

字符串反转是一个小而简单的算法,前面也说了,常被用来面试JavaScript基础。你可以使用上面各种方法来解决这个问题,甚至使用更为复杂的解决方案。如果你有更好的方法,欢迎在下面的评论中补上,与我们一起分享。

location.hash保存页面状态的技巧 hash属性是一个可读可写的字符串,该字符串是URL的锚部分(从#号开始的部分)。语法location.hash在我们的项目中,有大量ajax查询表单+结果列表的页面,

JS实现的base加密解密完整实例 本文实例讲述了JS实现的base加密解密。分享给大家供大家参考,具体如下:完整的代码:HTMLHEADTITLEBase/TITLEscriptlanguage=javascriptvarbaseEncodeChars="ABCDEFGHI

Bootstrap Chart组件使用教程 Bootstrap是由前Twitter设计师MarkOtto和JacobThornton开发的前端工具包,其提供了优雅的HTML和CSS规范。Bootstrap不单单是一个框架,更确切的说,它改变了整个游

标签: 字符串反转C语言代码

本文链接地址:https://www.jiuchutong.com/biancheng/369896.html 转载请保留说明!

上一篇:基于BootStarp的Dailog(bootstrap启动类)

下一篇:location.hash保存页面状态的技巧(document.location.hash)

  • 详解SQL Server的聚焦过滤索引(sql server基本知识)

    SQL Server对创建索引大小有限制,最大是字节,上述直接写的VARCHAR(MAX),所以会出错,切记,切记。

    此时我们在主键上创建非聚集索引,我们在主键RowID上创建一个过滤索引且SomeValue = 'JeffckyWang" class="img-responsive" alt="详解SQL Server的聚焦过滤索引(sql server基本知识)">

    详解SQL Server的聚焦过滤索引(sql server基本知识)

  • 新一代Windows系统重磅曝光:全局应用加入多标签特性(新一代win10)

    新一代Windows系统重磅曝光:全局应用加入多标签特性(新一代win10)

  • 提升windows2003的系统安全性的四个技巧(windows2003怎么升级)

    提升windows2003的系统安全性的四个技巧(windows2003怎么升级)

  • Win8.1系统浏览网页遇到无法打开网页问题的解决方法(win8系统自带浏览器)

    Win8.1系统浏览网页遇到无法打开网页问题的解决方法(win8系统自带浏览器)

  • Shell脚本test命令使用总结和实例(shell脚本tr)

    Shell脚本test命令使用总结和实例(shell脚本tr)

  • 利用express启动一个server服务的方法(express如何使用)

    利用express启动一个server服务的方法(express如何使用)

  • Android使用ViewFlipper实现Switch动画特效(Android使用教程)

    Android使用ViewFlipper实现Switch动画特效(Android使用教程)

  • 非金银首饰以旧换新增值税
  • 个人所得税如何计算
  • 现在开票还能用三方协议吗
  • 个人所得税租房专项扣除标准
  • 营改增后纳税人可以使用的发票种类有
  • 收入与成本不配合
  • 获取发票信息异常
  • 个税超过部分征税还是全部
  • 吸收合并的税务处理增值税风险
  • 出口货物是否属于存货
  • 公司收到银行转账会计分录
  • 不动产税征收标准
  • 开票金额和实际金额不一致
  • 事业单位跨期发票的财务入账问题
  • 一次性医保补助多少钱
  • 给了钱不给发票可以报警吗
  • 贸易类公司所得税核定征收税率是多少?
  • 技术服务费属于无形资产吗
  • 简易征收一般纳税人可以收专票吗
  • 刻章的发票怎么做分录
  • 代开的发票没有打印怎么作废
  • 企业所得税清算报备是什么意思
  • 房地产记账凭证
  • 印花税无法申报怎么回事
  • 结转主营业务成本是含税还是不含税
  • 原始凭证的审核内容
  • 房地产企业收到房款账务处理
  • 公益性捐赠包括向脱贫地区捐赠吗
  • 应交增值税有哪些
  • 劳务人员劳务费
  • 资产负债表中的固定资产怎么算
  • type3插件
  • 老大心态是什么意思
  • 官网下载的iso怎么用u盘安装
  • manager's office是什么意思
  • 贷款减值损失准备怎么算
  • vue如何销毁页面
  • php数组内容替换
  • 什么是社保差额
  • php数组实现
  • elementui动态表单数据回显
  • php image
  • 耕地里埋坟国家有什么规定
  • 企业改制资产整合过程中涉及的土地增值税
  • 11-ElementUI
  • 资产报废的原因及情况说明
  • 独资企业和公司区别
  • 什么是ad域服务
  • mysql数据库如何升级
  • 同在一个单位
  • 房产税应纳税额计算例题
  • 支付员工经济补偿金会计处理方式
  • 合并企业如何缴纳印花税
  • 三证合一哪三个证
  • 弱电工程怎么入账
  • 研发支出资本化和费用化的区别
  • 营改增后建筑业税率变化情况
  • 租办公楼有什么讲究
  • 公司为员工租房应注意
  • 明细账摘要写错了怎么修改
  • distinct 多个
  • win7提示oxcooooo98
  • CentOS上查看系统信息以及配置防火墙的方法
  • win8开启快速启动
  • ubuntu源代码
  • linux带桌面
  • ini文件是什么意思
  • win10输入法怎么添加美式键盘
  • android游戏开发框架
  • 微信小程序异步回调函数
  • jquery移动节点的方法
  • 微信jssdk vue
  • jquery点击方法
  • shell脚本 su
  • jquery easyui 教程
  • jquery表单事件验证表单
  • 销售有机肥需要什么手续
  • 四川国税网上营业厅
  • 青羊名字由来
  • 餐饮财务分析表怎么写的啊
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设