Interleaving String——leetcode string操作说明

来源:互联网 发布:磁力搜索软件 编辑:程序博客网 时间:2024/06/01 14:55

1.注意区别sizeof和.size的区别,一个是取得所占字节数,一个是字符串的长度

2.注意算法的逻辑,容易出现的错误解法

bool isInterleave(string s1, string s2, string s3) {int len1 = s1.size();int len2 = s2.size();int len3 = s3.size();if (len3 != len1 + len2){return false;}int i = 0, j = 0;for (int k = 0; k < len3; ++k){if (s3[k] == s1[i]){++i;}else{if (s3[k] == s2[j]){++j;}elsereturn false;}}return true;}
问题描述:

Given s1s2s3, find whether s3 is formed by the interleaving of s1 and s2.

For example,
Given:
s1 = "aabcc",
s2 = "dbbca",

When s3 = "aadbbcbcac", return true.
When s3 = "aadbbbaccc", return false.

核心思想:

isInterleaving(s1,len1,s2,len2,s3,len3)     =   (s3.lastChar == s1.lastChar) && isInterleaving(s1,len1 - 1,s2,len2,s3,len3 - 1)      ||(s3.lastChar == s2.lastChar) && isInterleaving(s1,len1,s2,len2 - 1,s3,len3 - 1)

实现代码:


正确的还在写,明日再议

0 0
原创粉丝点击