您的位置:首页 > 汽车 > 新车 > 私人20服务器_app开发及后期维护费用_微商怎么做推广加好友_seo教程视频

私人20服务器_app开发及后期维护费用_微商怎么做推广加好友_seo教程视频

2025/1/3 2:32:36 来源:https://blog.csdn.net/m0_74897394/article/details/143030210  浏览:    关键词:私人20服务器_app开发及后期维护费用_微商怎么做推广加好友_seo教程视频
私人20服务器_app开发及后期维护费用_微商怎么做推广加好友_seo教程视频

给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 

回文串

 。返回 s 所有可能的分割方案。

示例 1:

输入:s = "aab"
输出:[["a","a","b"],["aa","b"]]

示例 2:

输入:s = "a"
输出:[["a"]]

提示:

  • 1 <= s.length <= 16
  • s 仅由小写英文字母组成

思路,我们可以采用回溯算法,找到每一个字符串的组合,再判断是否是回文串,在回溯函数中,我们采用一个for循环更新容器大小用来截取字符串长度。

class Solution {
public:vector<vector<string>>res;vector<string>path;bool is_fun(int left,int right,string s){if(left>right)return false;while(left<right){if(s[left]!=s[right])return false;left++;right--;}return true;}void backtracing(int left,int right,string s){if(left>right){res.push_back(path);return ;}for(int i=0;i<right-left+1;i++){if(is_fun(left,left+i,s)){path.push_back(s.substr(left,i+1));backtracing(left+i+1,right,s);path.pop_back();}}}vector<vector<string>> partition(string s) {backtracing(0,s.size()-1,s);return res;}
};

给定字符串大小除去上面方法外,我们还可以使用substr函数,我认为这样写更加清晰,在判断是否是回文串时可以直接重新计算字符串的left和right,像上面函数中写的,在调用is_fun函数时,我第一次写时传错参数is_fun(left.i,s)导致开头传错判断错误。

       for(int i=1;i<=right-left+1;i++){if(is_fun(s.substr(left,i))){path.push_back(s.substr(left,i));backtracing(left+i,right,s);path.pop_back();}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com