字符串的一个算法题

给定一个字符串,将其按组倒序。

  • 输入:hello world xyz
  • 输出:xyz world hello
// log
/**
 * 元素倒序
 * @param str string字符串 输入字符串
 * @return string{string}字符串
 */
function reverse(str) {

  let start = 0
  let end = 0
  let arr = []
  let flag = getFlag(arr[0])
  for (let i = 1; i < str.length; i++) {
    if (flag !== getFlag(str[i])) {
      end = i
      arr.push(str.substring(start, end))
      flag = getFlag(str[i])
      start = i
    }
    if (i === str.length - 1) {
      arr.push(str.substring(start))
    }
  }
  return arr.reverse().join('')
}


function getFlag(str) {
  let reg1 = /[\d\w]/
  let reg2 = /\s/
  if (reg1.test(str)) {
    return 1
  }
  if (reg2.test(str)) {
    return 2
  }
  return 3
}

console.log(reverse('hello world xyz'))
posted @ 2020-09-23 00:19  oceans-pro  阅读(140)  评论(0编辑  收藏  举报