Print Concatenation of Zig-Zag String in 'n' Rows - GeeksforGeeks



Print Concatenation of Zig-Zag String in 'n' Rows - GeeksforGeeks

Given a string and number of rows 'n'. Print the string formed by concatenating n rows when input string is written in row-wise Zig-Zag fashion.

Examples:

Input: str = "ABCDEFGH"         n = 2  Output: "ACEGBDFH"  Explanation: Let us write input string in Zig-Zag fashion               in 2 rows.  A   C   E   G       B   D   F   H  Now concatenate the two rows and ignore spaces   in every row. We get "ACEGBDFH"    Input: str = "GEEKSFORGEEKS"         n = 3  Output: GSGSEKFREKEOE  Explanation: Let us write input string in Zig-Zag fashion               in 3 rows.  G       S       G       S    E   K   F   R   E   K      E       O       E  Now concatenate the two rows and ignore spaces   in every row. We get "GSGSEKFREKEOE"

We strongly recommend you to minimize your browser and try this yourself first.

The idea is to traverse the input string. Every character has to go to one of the rows. One by one add all characters to different rows. Below is algorithm:

1) Create an array strings, arr[n]  2) Initialize direction as "down" and row as 0. The      direction indicates whether we need to move up or      down in rows.   3) Traverse the input string, do following for every     character.     a) Append current character to string of current row.     b) If row number is n-1, then change direction to 'up'     c) If row number is 0, then change direction to 'down'     d) If direction is 'down', do row++.  Else do row--.  4) One by one print all strings of arr[]. 


Read full article from Print Concatenation of Zig-Zag String in 'n' Rows - GeeksforGeeks


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts