【ruby】leetcode 练习 :Reverse String

Example 1:

Input: s = ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]

Example 2:

Input: s = ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]

解法:
这题可以很简单的使用 reverse! 解决, 但是这边挑战不使用 reverse 该如何解

第一种方法,建立额外空间纪录

缺点是会佔用到比较多额外空间

def reverse_string(s)  len = s.length   arr = []  while len > 0    arr << s.pop    len -= 1  end  arrend

第二种方法 直接交换左右两边的值

若是阵列长度为奇数,两边阵列位置相等表示已交换完成,若阵列长度是偶数,左右数值不会相遇在同一位址,因此当左边阵列位址将大于右边阵列位址表示交换完毕。

def reverse_string(s)    left = 0    right = s.length - 1    while left < right        t = s[left]        s[left] = s[right]        s[right] = t        left += 1        right -= 1    end    send

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章