第十七周(ZigZag Conversion)
来源:互联网 发布:java开源开发平台 编辑:程序博客网 时间:2024/05/16 17:08
第十七周(ZigZag Conversion )
目录:
- 本周完成题目
- 主要过程思路
- 相关代码
一、本周完成题目
本周共完成2道题目,1道Medium,1道Easy。
具体完成题目及难度如下表:
题目内容
1、ZigZag Conversion
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 NA P L S I I GY 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 text, int nRows);
convert(“PAYPALISHIRING”, 3) should return “PAHNAPLSIIGYIR”.
题目大意:给一个字符串,按Z字形返回一个新顺序的字符串。
2、Reverse Integer
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
Example:
Input: "babad"Output: "bab"Note: "aba" is also a valid answer.
Example:
Input: "cbbd"Output: "bb"
题目大意:给一个字符串,返回最长的回文子字符串。
二、主要过程思路
1、ZigZag Conversion:
本问题主要需要关注的点就是ZigZag具体是什么样的。这一点上我参考了下面这个解释。
https://discuss.leetcode.com/topic/22925/if-you-are-confused-with-zigzag-pattern-come-and-see
/*n=numRowsΔ=2n-2 1 2n-1 4n-3Δ= 2 2n-2 2n 4n-4 4n-2Δ= 3 2n-3 2n+1 4n-5 .Δ= . . . . .Δ= . n+2 . 3n .Δ= n-1 n+1 3n-3 3n-1 5n-5Δ=2n-2 n 3n-2 5n-4*/
也就是说我们需要实现上面的这种访问顺序。这里使用一个for循环,逐行加入字符到新的字符串中。
对于每一行,首先访问第i个值,之后增加(numRows-i-1)*2,2i(1隔1增加)。当访问的值大于字符串长度的时候就停止对于该行的访问。直到numRows行都访问结束。
2、Reverse Integer:
本题比较简单。只需要每次对于x求余,然后加到目标整数中即可。不过需要注意数据溢出的问题。如果超过了范围则返回0。
三、相关代码
ZigZag Conversion
class Solution {public: int lengthOfLongestSubstring(string s) { vector<int> visit(256, -1); int start=-1,result=0; for(int i=0;i<s.size();i++){ if(visit[s[i]]>start){ start=visit[s[i]]; } result=max(result,i-start); visit[s[i]]=i; } return result; }};
Reverse Integer
class Solution {public: int reverse(int x) { long result=0; while(x!=0){ result=x%10+result*10; x=x/10; if(result<INT_MIN || result>INT_MAX) return 0; } return result; }};
- 第十七周(ZigZag Conversion)
- ZigZag Conversion(java)
- ZigZag Conversion(python)
- LeetCode(6) ZigZag Conversion
- ZigZag Conversion (C实现)
- 锯齿转变(ZigZag Conversion)
- 6. ZigZag Conversion (Easy)
- LeetCode (6)ZigZag Conversion
- 6. ZigZag Conversion(Medium)
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- Zigzag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- ZigZag Conversion
- 递增序列排列
- 软件架构模式
- jQuery怎么操作json对象jsonTest(即json类型的string,但是要先将string转换为json对象),获取对象属性、获取对象数组的某个对象
- CSDN 如何转载别人的文章
- mysql 无法启动,错误1067,进程意外终止
- 第十七周(ZigZag Conversion)
- php7新特性
- 【自动化学习笔记】环境搭建Selenium2+Eclipse+Java+TestNG_(一)
- Gson
- 树的后序遍历
- ubuntu on windows下apache2+php7+mysql
- 进程篇—进程整理
- GET和POST区别
- SpringMVC深度探险(三) —— DispatcherServlet与初始化主线(转)