Leetcode - Split a String Into the Max Number of Unique Substrings
Problem Statement Given a string s, return the maximum number of unique…
August 27, 2019
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:
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
If you look the pattern, its going in two directions:
You need one flag to indicate whether you are going downward or going upward.
public class Q6_ZigZagConversion {
private String str;
public Q6_ZigZagConversion(String str) {
this.str = str;
}
public String conversion(int numRows) {
int l = this.str.length();
List<StringBuffer> zigzag = new ArrayList<StringBuffer>();
for (int i=0; i<numRows; i++) {
zigzag.add(new StringBuffer());
}
boolean comingFromTop = true;
int zig = 0;
for (int i=0; i<l; i++) {
zigzag.get(zig).append(this.str.charAt(i));
if (zig == numRows-1) {
comingFromTop = false;
}
else if (zig == 0) {
comingFromTop = true;
}
zig = comingFromTop ? zig + 1 : zig - 1;
zig = zig % numRows;
}
StringBuffer sb = new StringBuffer();
for (int i=0; i<numRows; i++) {
sb.append(zigzag.get(i));
}
return sb.toString();
}
}
Problem Statement Given a string s, return the maximum number of unique…
Problem Statement You are given a rows x cols matrix grid. Initially, you are…
Problem Statement Implement atoi which converts a string to an integer…
** Inversion There is an array(a) and two indexes i and j. Inversion is the…
First try to understand question. Its a binary tree, not a binary search tree…
Introduction In this post we will see following: How to schedule a job on cron…
Introduction There are some cases, where I need another git repository while…
Introduction In this post, we will see how to fetch multiple credentials and…
Introduction I have an automation script, that I want to run on different…
Introduction I had to write a CICD system for one of our project. I had to…
Introduction Java log4j has many ways to initialize and append the desired…