How to resolve the algorithm Reverse words in a string step by step in the V (Vlang) programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Reverse words in a string step by step in the V (Vlang) programming language

Table of Contents

Problem Statement

Reverse the order of all tokens in each of a number of strings and display the result;   the order of characters within a token should not be modified.

Hey you, Bub!   would be shown reversed as:   Bub! you, Hey

Tokens are any non-space characters separated by spaces (formally, white-space);   the visible punctuation form part of the word within which it is located and should not be modified. You may assume that there are no significant non-visible characters in the input.   Multiple or superfluous spaces may be compressed into a single space. Some strings have no tokens, so an empty string   (or one just containing spaces)   would be the result. Display the strings in order   (1st, 2nd, 3rd, ···),   and one string per line. (You can consider the ten strings as ten lines, and the tokens as words.)

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Reverse words in a string step by step in the V (Vlang) programming language

Source code in the v programming language

fn main() {
    mut n := [
        "---------- Ice and Fire ------------",
        "                                    ",
        "fire, in end will world the say Some",
        "ice. in say Some                    ",
        "desire of tasted I've what From     ",
        "fire. favor who those with hold I   ",
        "                                    ",
        "... elided paragraph last ...       ",
        "                                    ",
        "Frost Robert -----------------------",
    ]
    for i, s in n {
        mut t := s.fields() // tokenize
        // reverse
        last := t.len - 1
        for j, k in t[..t.len/2] {
            t[j], t[last-j] = t[last-j], k
        }
        n[i] = t.join(" ")
    }
    // display result
    for t in n {
        println(t)
    }
}

mut n := [
  "---------- Ice and Fire ------------",
  "                                    ",
  "fire, in end will world the say Some",
  "ice. in say Some                    ",
  "desire of tasted I've what From     ",
  "fire. favor who those with hold I   ",
  "                                    ",
  "... elided paragraph last ...       ",
  "                                    ",
  "Frost Robert -----------------------",
]

println(
  n.map(
    it.fields().reverse().join(' ').trim_space()
  ).join('\n')
)

  

You may also check:How to resolve the algorithm Fusc sequence step by step in the Sidef programming language
You may also check:How to resolve the algorithm Lychrel numbers step by step in the C++ programming language
You may also check:How to resolve the algorithm Babbage problem step by step in the Dart programming language
You may also check:How to resolve the algorithm Palindrome detection step by step in the Zoea programming language
You may also check:How to resolve the algorithm Pernicious numbers step by step in the PicoLisp programming language