Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

LeetCode Solutions

6. zigzag conversion

Time: O(|s|)

Space: O(|s|)

			

    class Solution {
        public:
         string convert(string s, int numRows) {
           string ans;
           vector<vector<char>> rows(numRows);
           int k = 0;
           int direction = (numRows == 1) - 1;
       
           for (const char c : s) {
             rows[k].push_back(c);
             if (k == 0 || k == numRows - 1)
               direction *= -1;
             k += direction;
           }
       
           for (const vector<char>& row : rows)
             for (const char c : row)
               ans += c;
       
           return ans;
         }
       };				 


    class Solution {
        public String convert(String s, int numRows) {
          StringBuilder sb = new StringBuilder();
          List<Character>[] rows = new List[numRows];
          int k = 0;
          int direction = numRows == 1 ? 0 : -1;
      
          for (int i = 0; i < numRows; ++i)
            rows[i] = new ArrayList<>();
      
          for (final char c : s.toCharArray()) {
            rows[k].add(c);
            if (k == 0 || k == numRows - 1)
              direction *= -1;
            k += direction;
          }
      
          for (List<Character> row : rows)
            for (final char c : row)
              sb.append(c);
      
          return sb.toString();
        }
      }            


    class Solution:
    def convert(self, s: str, numRows: int) -> str:
      rows = [''] * numRows
      k = 0
      direction = (numRows == 1) - 1
  
      for c in s:
        rows[k] += c
        if k == 0 or k == numRows - 1:
          direction *= -1
        k += direction
  
      return ''.join(rows)
  


Click on sidebar top menu and then click on any leetcode question to see its solution code in c++ ,java and python.


learn more about leetcode study guide =>

Leetcode study plan for FAANG

Topic wise problems for Beginners DS - Algorithms with LEETCODE

List of Algorithms and data structures for Competitive Programming