Leetcode

Leetcode ZigZag Conversion Java Solution

The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)

P   A   H   N
A P L S I I G
Y   I   R

And then read line by line: "PAHNAPLSIIGYIR"

Write the code that will take a string and make this conversion given a number of rows:

string convert(string s, int numRows);

Example 1:

Input: s = "PAYPALISHIRING", numRows = 3
Output: "PAHNAPLSIIGYIR"

Example 2:

Input: s = "PAYPALISHIRING", numRows = 4
Output: "PINALSIGYAHRPI"
Explanation:

P     I    N
A   L S  I G
Y A   H R
P     I

Solution:

class HackerHeap {
    public String convert(String s, int numRows) {
  if(s.isEmpty() || numRows == 0 || numRows == 1)
   return s;
        String[] collector = new String[numRows];
        int c = 0;
        int subC = 0;
        while(c < s.length()) {
         int idx = Math.abs(subC);
         if(collector[idx] == null)
          collector[idx] = String.valueOf(s.charAt(c));
         else
          collector[idx] = collector[idx]+s.charAt(c);
         c++;
         if(subC == numRows-1)
          subC *= -1;
         subC++;
        }
        
        StringBuilder result = new StringBuilder();
        
        for(int i = 0; i < numRows; i++) {
         if(collector[i] != null)
          result.append(collector[i]);
        }
        
  return result.toString();
    }
}
rajendra

Recent Posts

Largest Unique Number Java Solution

Question : Given an array of integers A, return the largest integer that only occurs once.…

10 months ago

Jump Search Algorithm In Java

Jump search algorithm is a pretty new algorithm to search for an element in a…

1 year ago

Knuth Morris Pratt Pattern Search Algorithm

What is Knuth Morris Pratt or KMP algorithm ? KMP is an algorithm which is…

1 year ago

Binary Search Algorithm In Java

Binary Search is a Logarithmic search which finds the target element in a sorted array…

1 year ago

Leetcode Integer to Roman Java Solution

Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 V 5 X…

2 years ago

Leetcode Container With Most Water Java Solution

Given n non-negative integers a1, a2, ..., an , where each represents a point at coordinate (i, ai). n vertical lines are drawn such…

2 years ago

This website uses cookies.