当前位置: 首页 > news >正文

c 怎么做能让窗体访问网站网站移动端适配怎么做

c 怎么做能让窗体访问网站,网站移动端适配怎么做,企业信用信息公示系统(全国)官网,手机网站开发成为小程序文章目录 跳转汇总链接3.1 回文子串3.2 最长回文子串3.3 分割回文串 IV3.4 分割回文串II(hard) 跳转汇总链接 #x1f449;#x1f517;动态规划算法汇总链接 3.1 回文子串 #x1f517;题目链接 给定一个字符串 s #xff0c;请计算这个字符串中有多少个回文子字符串。 … 文章目录 跳转汇总链接3.1 回文子串3.2 最长回文子串3.3 分割回文串 IV3.4 分割回文串II(hard) 跳转汇总链接 动态规划算法汇总链接 3.1 回文子串 题目链接 给定一个字符串 s 请计算这个字符串中有多少个回文子字符串。 具有不同开始位置或结束位置的子串即使是由相同的字符组成也会被视作不同的子串。 状态表示 dp[i][j] 表示字符串 s 中以 i 位置开头 j 位置结尾的子串是否是回文。 状态转移方程 分析 dp 表要判断 [i, j] 位置的子串是否为回文首先要根据 s[i] 和 s[j] 的大小判定具体如下 s[i] ! s[j], false s[i] s[j], i j, truei 1 j, truej - i 1, s[i1][j-1] true, trues[i1][j-1] false, false初始化 这里主要是[i1][j-1] 可能会超出需要范围但是有个隐含条件 i j可以在 for 循环中控制所以不需要初始化。 填表顺序 填写 dp[i][j]需要有 [i1] 和 [j-1]故二维数组从下往上填写。 返回值 dp 中的 true 的出现次数。 代码如下 class Solution { public:int countSubstrings(string s) {int n s.size();vectorvectorbool dp(n, vectorbool(n));int ret 0;for(int i n - 1; i 0; i--){for(int j i; j n; j){// 默认都是 false只需要处理 true 的位置if(s[i] s[j])dp[i][j] i 1 j ? dp[i1][j-1] : true;if(dp[i][j])ret;}}return ret;} };3.2 最长回文子串 题目链接 给你一个字符串 s找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同则该字符串称为回文字符串。 如上题分析写 dp 方程。 在 dp[i][j] 且满足基本约束时找到 len即 j - i 1的最大值 同时由于 dp 表是从下往上从后往前填的正好更新 begin。 代码如下 class Solution { public:string longestPalindrome(string s) {int n s.size();int len 1, begin 0;vectorvectorbool dp(n, vectorbool(n));for(int i n - 1; i 0; i--){for(int j i; j n; j){if(s[i] s[j])dp[i][j] i1 j ? dp[i1][j-1] : true;if(dp[i][j] j-i1 len)len j - i 1, begin i;}}return s.substr(begin, len);} };3.3 分割回文串 IV 题目链接 给你一个字符串 s 如果可以将它分割成三个 非空 回文子字符串那么返回 true 否则返回 false 。 当一个字符串正着读和反着读是一模一样的就称其为 回文字符串 。 还是照上述方法生成 dp 表记录是否为回文子串进行数据预处理 再将字符分成三部分依次遍历如果 相应位置的 dp 值为 true就可以直接返回啦。 代码如下 class Solution { public:bool checkPartitioning(string s) {int n s.size();// 1. 预处理子串是否是回文vectorvectorbool dp(n, vectorbool(n));for(int i n - 1; i 0; i--)for(int j i; j n; j)if(s[i] s[j])dp[i][j] i1 j ? dp[i1][j-1] : true;// 2. 字符串分成三段枚举就好了// [0, i) [i, j) [j, n)for(int i 1; i n - 1; i) // i 是第二段的起始for(int j i 1; j n; j) // j 是第三段的起始if(dp[0][i-1] dp[i][j-1] dp[j][n-1])return true;return false;} };3.4 分割回文串II(hard) 题目链接 给你一个字符串 s请你将 s 分割成一些子串使每个子串都是回文。 返回符合要求的 最少分割次数 。 同样先预处理数据方便判断子串是否是回文串 剩下的分析方法与 1.4 单词拆分题 一样 dp[i] 表示 s[0, i] 位置上的最长字串的最小分割次数当分析 dp[i] 的时候需要将[0, i] 分成两部分 首先是离 i 最近的 [j, i]找到能满足是回文的 j 再找 [0, j-1] 的最小分割次数正是和状态表示一样于是有 dp[i], [0, i] 是回文0[0, i] 不是回文有 0 j i[j, i] 是回文求 min(dp[j]1)[j, i] 不是回文不考虑代码如下 class Solution { public:int minCut(string s) {int n s.size();// 1. 预处理子串是否是回文vectorvectorbool sub(n, vectorbool(n));for(int i n - 1; i 0; i--)for(int j i; j n; j)if(s[i] s[j])sub[i][j] i1 j ? sub[i1][j-1] : true;// 2. 分割是另一个dp问题咯~vectorint dp(n, 0x3f3f3f3f);for(int i 0; i n; i){if(sub[0][i]) dp[i] 0;elsefor(int j 1; j i; j)if(sub[j][i])dp[i] min(dp[j - 1] 1, dp[i]);}return dp[n-1];} };如果本文对你有些帮助欢迎 点赞 收藏 关注你的支持是对作者大大莫大的鼓励(✿◡‿◡) 若有差错恳请留言指正~~
http://www.sczhlp.com/news/224783/

相关文章:

  • 网站设计的一般流程wordpress 招聘
  • 手机单页面网站模板微信推广渠道
  • 阿里巴巴网站建设教程视频郴州微网站建设
  • 个人作品网站模板宁波专业网站公司
  • 俄罗斯做牙网站南江县规划和建设局网站
  • 对网站设计的建议嵌入式软件工程师培训
  • 租一个服务器建网站多少钱怎么建设个人主页网站
  • jsp网站开发的mvc宁波网站推广工作室电话
  • 广州站西手表wordpress前台修改
  • 中文wordpress网站模板下载失败邵阳 网站开发 招聘
  • 建设网站的过程网页链接 提取码:qqcd
  • 缝纫网站做洗衣机罩小程序app软件开发公司
  • 顺企网江西网站建设响应式网站模板html
  • 菏泽网站建设电话咨询下拉框代码自做生成网站
  • 网站显示建设中页面增加访客的网站
  • 珠海移动网站建设报价买源码做网站简单嘛
  • PHP 异常处理全攻略 Try-Catch 从入门到精通完全指南
  • 制作网站可以赚钱吗小新pro更改网站设置
  • 广州模板网站建设费用做网站主机要求
  • vue开发视频网站个人社保缴费多少钱一个月
  • 网站开发 源代码网站推广技巧有哪些
  • 网站开发所需配置建站教程wp
  • 蓝色网站模板中文wordpress网站
  • 做网站优化推广多少钱苏州专业网站制作
  • 县直门户网站建设管理ppt模板哪里找
  • 软装设计网站有哪些最大的网站建设公司排名
  • wordpress商城功能中国seo第一人
  • 好用的cms网站在线课程网站建设规范
  • 广州购物网站建设商洛 网站建设
  • 江门网站建设企业网站的布局方式有哪些内容