由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - interleave string 的题目
相关主题
Interleave Strings那个题目有O(n)时间 O(1)空间算法么?问一道面试题目
facebook的面试题matrix question
请教一道leetcode的新题Maximal Rectangle O(mn) 解法 非 histogram
关于String Interleaving 验证的问题Set Matrix Zeroes const space solution
Search a 2D Matrix的两种写法,哪种更好?matrix question
sodoku solver 怎么做?请教一道google面试题
set matrix zero最少用多少space?Question about Leetcode: Maximum rectangle
Google面经,同求大牛refer请教一道算法题
相关话题的讨论汇总
话题: s3话题: return话题: false话题: string话题: matrix
进入JobHunting版参与讨论
1 (共1页)
g***j
发帖数: 1275
1
哪位大牛帮我看看这个代码,为什么leetcode online judge的small的都过了,large
的就过不了了?
test case 如下,说Time Limit Error, 是不是递归的算法太烂了? 不至于这个都处
理不了吧?
"
bbbbbabbbbabaababaaaabbababbaaabbabbaaabaaaaababbbababbbbbabbbbababbabaababa
bbbaabababababbbaaababaa",
"
babaaaabbababbbabbbbaabaabbaabbbbaabaaabaababaaaabaaabbaaabaaaabaabaabbbbbbb
bbbbabaaabbababbabbabaab",
"
babbbabbbaaabbababbbbababaabbabaabaaabbbbabbbaaabbbaaaaabbbbaabbaaabababbaaa
aaabababbababaababbababbbababbbbaaaabaabbabbaaaaabbabbaaaabbbaabaaabaababaab
abbaaabbbbbabbbbaabbabaabbbbabaaabbababbabbabbab"
class Solution {
public:
bool isInterleave(string s1, string s2, string s3) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(!s1.length() && !s2.length() && !s3.length()) return true;

if(s3.length() != s1.length() + s2.length()) return false;
if(!s1.length()) return s2 == s3;

if(!s2.length()) return s1 == s3;
if(s3[0]!=s2[0] && s3[0]!= s1[0]) return false;
bool first = false;
bool second = false;
if(s3[0] == s1[0]) {

first = isInterleave(s1.substr(1,s1.length()-1), s2, s3.substr(1
, s3.length()-1));

if(first) return first;
}

if(s3[0] == s2[0]) {

second = isInterleave(s1, s2.substr(1,s2.length()-1), s3.substr(
1, s3.length()-1));

if(second) return second;
}

return false;
}
};
l****c
发帖数: 782
2
记得是big的时候,得用DP吧,recursion太慢了。
d*********g
发帖数: 154
3
练习一个:
public class Solution {
public boolean isInterleave(String s1, String s2, String s3)
{
if(s1 == null || s2 == null || s3 == null) return false;
if(s1.length() + s2.length() != s3.length()) return false;

boolean[][] matrix = new boolean[s1.length()+1][s2.length()+1];
matrix[0][0] = true;

for(int i = 1; i < matrix.length; ++i)
{
matrix[i][0] = (s3.charAt(i-1) == s1.charAt(i-1)) ? true :
false;
}
for(int i = 1; i < matrix[0].length; ++i)
{
matrix[0][i] = (s3.charAt(i-1) == s2.charAt(i-1)) ? true :
false;
}

for(int i = 1; i < matrix.length; ++i)
{
for(int j = 1; j < matrix[0].length; ++j)
{
if((matrix[i-1][j] == true && s1.charAt(i-1) == s3.charAt(
i+j-1)) || (matrix[i][j-1] == true && s2.charAt(j-1) == s3.charAt(i+j-1)))
{
matrix[i][j] = true;
}
else
{
matrix[i][j] = false;
}
}
}
return matrix[s1.length()][s2.length()];
}
}
1 (共1页)
进入JobHunting版参与讨论
相关主题
请教一道算法题Search a 2D Matrix的两种写法,哪种更好?
问个算法题sodoku solver 怎么做?
面试问题请教set matrix zero最少用多少space?
再来道题Google面经,同求大牛refer
Interleave Strings那个题目有O(n)时间 O(1)空间算法么?问一道面试题目
facebook的面试题matrix question
请教一道leetcode的新题Maximal Rectangle O(mn) 解法 非 histogram
关于String Interleaving 验证的问题Set Matrix Zeroes const space solution
相关话题的讨论汇总
话题: s3话题: return话题: false话题: string话题: matrix