So, this is a program in java written to reverse the words in a sentence. I thought this was pretty easy using inbuilt method such as split() and StringBuilder(). I could have 'not' used them, but again its writing the whole JFC (Java Foundation Class) implementation. Screw it :), I am on a journey to write lots of programs such as this...
package dsa.stringmanipulation; public class SentenceReverser { public static final String SPACE = " "; public static void main(String args[]) { SentenceReverser rev = new SentenceReverser(); System.out.println(rev .printReversed("This is my first attempt at a program in ds")); } public String printReversed(String inputText) { if (inputText != null && inputText.length() > 0) { int lenOfText = inputText.length(); if (lenOfText == 1) { return inputText; } else { String[] texts = inputText.split(SPACE); StringBuilder output = new StringBuilder(); for (int i = texts.length - 1; i > 0; i--) { output.append(texts[i]).append(SPACE); } output.append(texts[0]); return output.toString(); } } else { System.out.println("Invalid Sentence"); return null; } } }
Now, for the code in C++,
#include <iostream> using namespace std; void str_rev(char s[], int start, int end) { int len = end - start; for(int i=0;i<len/2;i++) { char t = s[i+start]; s[i+start] = s[end-i-1]; s[end-i-1] = t; } } int main() { char a[] = "my name is prabhu"; cout << "[" << a << "] ==> "; str_rev(a,0,strlen(a)); int start_index = 0; for(size_t i=0;i<=strlen(a);i++) { if(a[i] == ' ' || a[i] == '\0') { str_rev(a,start_index,i); start_index = i+1; } } cout << "[" << a << "]" << endl; }
Cheers,
Bragaadeesh.
1 comment:
Great thought Prabhu. Congrats
Post a Comment