LeetCode – Reverse Words in a String II (Java)
Given an input string, reverse the string word by word. A word is defined as a sequence of non-space characters.
The input string does not contain leading or trailing spaces and the words are always separated by a single space.
For example,
Given s = "the sky is blue",
return "blue is sky the".
Could you do it in-place without allocating extra space?
Java Solution
public void reverseWords(char[] s) { int i=0; for(int j=0; j<s.length; j++){ if(s[j]==' '){ reverse(s, i, j-1); i=j+1; } } reverse(s, i, s.length-1); reverse(s, 0, s.length-1); } public void reverse(char[] s, int i, int j){ while(i<j){ char temp = s[i]; s[i]=s[j]; s[j]=temp; i++; j--; } } |
<pre><code> String foo = "bar"; </code></pre>
-
sly
-
Neha Kundra
-
Neha Kundra
-
Luis Gerardo Camara Salinas
-
Sahar Goelman
-
saipabbathi
-
Mohamed
-
Godfred Sabbih
-
Michael Brooks
-
Evelyn Barr
-
Devendra Vaja
-
Devendra Vaja
-
James Alikhani
-
rhel.user
-
Perminder
-
Boris Afanasiev
-
Brandon
-
Ayman Ali
-
vijay
-
tan nguyen
-
Sagarika Dusane
-
Eldar
-
Bukary Kandeh
-
Carlos Hernandez
-
Carlos Pérez
-
Brikesh Kumar
-
Bukary Kandeh
-
karthik339
-
Huy
-
Dnyanada Pramod Arjunwadkar
-
sewa
-
bpgen
-
Avinash Ujjwal
-
Satyendra Talatam
-
NightCoder
-
Noe Alejandro Perez Domínguez
-
Amit Chaudhary
-
omar farag
-
Christian
-
Raghu Mahajan
-
Raghu Mahajan
-
Amit Chaudhary
-
Samir Vasani
-
Samir Vasani
-
Akash Chaturvedi
-
Guest
-
stefan