admin管理员组文章数量:1130349
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 RAnd 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 text, int nRows);
convert("PAYPALISHIRING", 3) should
return "PAHNAPLSIIGYIR".
my answer:
public class Solution_6 {
public String convert(String s, int numRows) {
if (numRows <=1 || s.length() == 0)
return s;
String result = "";
int len = s.length();
for (int x=0;x<numRows && x<len; x++){
int pos = x;
//System.out.println(pos);
result += s.charAt(pos);
//System.out.println(result + "lala");
for (int y=1;pos<len;y++){
if(x==0 || x==numRows-1){
pos += 2*(numRows-1);
}else{
System.out.println(pos);
if (y%2 == 1){
pos += 2*(numRows-1-x);
}
else
//System.out.println(pos + "la");
pos +=2*x;
}
if(pos<len){
//System.out.println(pos);
result+=s.charAt(pos);
}
}
}
return result;
}参考:http://wwwblogs/sanghai/p/3632528.html
改进:
public static String convert(String s, int numRows) {
if (numRows <=1 || s.length() == 0)
return s;
String result = "";
int len = s.length();
int i = 0, j, gap = numRows-2;
String[] temp = new String[numRows];
for(int m=0;m<numRows;m++)
temp[m]="";
while(i<len){
for(j=0;j<numRows && i<len;j++){
//System.out.println(s.charAt(i));
temp[j] += s.charAt(i++);
}
for(j=gap;i<len && j>0;j--)
temp[j] += s.charAt(i++);
}
for(i=0;i<numRows;i++)
result += temp[i];
return result;
}
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 RAnd 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 text, int nRows);
convert("PAYPALISHIRING", 3) should
return "PAHNAPLSIIGYIR".
my answer:
public class Solution_6 {
public String convert(String s, int numRows) {
if (numRows <=1 || s.length() == 0)
return s;
String result = "";
int len = s.length();
for (int x=0;x<numRows && x<len; x++){
int pos = x;
//System.out.println(pos);
result += s.charAt(pos);
//System.out.println(result + "lala");
for (int y=1;pos<len;y++){
if(x==0 || x==numRows-1){
pos += 2*(numRows-1);
}else{
System.out.println(pos);
if (y%2 == 1){
pos += 2*(numRows-1-x);
}
else
//System.out.println(pos + "la");
pos +=2*x;
}
if(pos<len){
//System.out.println(pos);
result+=s.charAt(pos);
}
}
}
return result;
}参考:http://wwwblogs/sanghai/p/3632528.html
改进:
public static String convert(String s, int numRows) {
if (numRows <=1 || s.length() == 0)
return s;
String result = "";
int len = s.length();
int i = 0, j, gap = numRows-2;
String[] temp = new String[numRows];
for(int m=0;m<numRows;m++)
temp[m]="";
while(i<len){
for(j=0;j<numRows && i<len;j++){
//System.out.println(s.charAt(i));
temp[j] += s.charAt(i++);
}
for(j=gap;i<len && j>0;j--)
temp[j] += s.charAt(i++);
}
for(i=0;i<numRows;i++)
result += temp[i];
return result;
}本文标签: OJLeetCodeConversationZigZag
版权声明:本文标题:LeetCode OJ - ZigZag Conversation 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/jiaocheng/1754605073a2707661.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论