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

北京专业制作网站seo优化技术教程

北京专业制作网站,seo优化技术教程,公司名称起名大全,德州乐陵德州seo公司1 回文串 “回文串”是一个正读和反读都一样的字符串#xff0c;初始化标志flagtrue#xff0c;比如“level”或者“noon”等等就是回文串。 2 回文分割问题 给定一个字符串#xff0c;如果该字符串的每个子字符串都是回文的#xff0c;那么该字符串的分区就是回文分区。… 1 回文串 “回文串”是一个正读和反读都一样的字符串初始化标志flagtrue比如“level”或者“noon”等等就是回文串。 2 回文分割问题 给定一个字符串如果该字符串的每个子字符串都是回文的那么该字符串的分区就是回文分区。 例如“aba | b | bbabb | a | b | aba”是“abababababa”的回文分区。 确定给定字符串的回文分区所需的最少切割。 例如“ababababababa”至少需要3次切割。  这三个分段是“a | babbab | b | ababa”。 如果字符串是回文则至少需要0个分段。 如果一个长度为n的字符串包含所有不同的字符则至少需要n-1个分段。 3 源程序 using System; using System.Collections; using System.Collections.Generic; namespace Legalsoft.Truffer.Algorithm {     public static partial class Algorithm_Gallery     {         #region 算法1         private static bool PPP_IsPalindrome(string String, int i, int j)         {             while (i j)             {                 if (String[i] ! String[j])                 {                     return false;                 }                 i;                 j--;             }             return true;         } public static int Min_Palindrome_Partion(string str, int i, int j)         {             if (i j || PPP_IsPalindrome(str, i, j))             {                 return 0;             }             int ans Int32.MaxValue, count;             for (int k i; k j; k)             {                 count Min_Palindrome_Partion(str, i, k) Min_Palindrome_Partion(str, k 1, j) 1; ans Math.Min(ans, count);             }             return ans;         }         #endregion #region 算法2         public static int Min_Palindrome_Partion(string str)         {             int n str.Length;             int[,] C new int[n, n];             bool[,] P new bool[n, n]; int i, j, k, L;             for (i 0; i n; i)             {                 P[i, i] true;                 C[i, i] 0;             } for (L 2; L n; L)             {                 for (i 0; i n - L 1; i)                 {                     j i L - 1;                     if (L 2)                     {                         P[i, j] (str[i] str[j]);                     }                     else                     {                         P[i, j] (str[i] str[j]) P[i 1, j - 1];                     }                     if (P[i, j] true)                     {                         C[i, j] 0;                     }                     else                     {                         C[i, j] int.MaxValue;                         for (k i; k j - 1; k)                         {                             C[i, j] Math.Min(C[i, j], C[i, k] C[k 1, j] 1);                         }                     }                 }             }             return C[0, n - 1];         }         #endregion #region 算法3         public static int Min_Cutting(string a)         {             int[] cut new int[a.Length];             bool[,] palindrome new bool[a.Length, a.Length];             for (int i 0; i a.Length; i)             {                 int minCut i;                 for (int j 0; j i; j)                 {                     if (a[i] a[j] (i - j 2 || palindrome[j 1, i - 1]))                     {                         palindrome[j, i] true;                         minCut Math.Min(minCut, j 0 ? 0 : (cut[j - 1] 1));                     }                 }                 cut[i] minCut;             }             return cut[a.Length - 1];         }         #endregion #region 算法4         public static int Min_Palindrome_Partion_Second(string str)         {             int n str.Length;             int[] C new int[n];             bool[,] P new bool[n, n]; int i, j, L;             for (i 0; i n; i)             {                 P[i, i] true;             } for (L 2; L n; L)             {                 for (i 0; i n - L 1; i)                 {                     j i L - 1;                     if (L 2)                     {                         P[i, j] (str[i] str[j]);                     }                     else                     {                         P[i, j] (str[i] str[j]) P[i 1, j - 1];                     }                 }             } for (i 0; i n; i)             {                 if (P[0, i] true)                 {                     C[i] 0;                 }                 else                 {                     C[i] int.MaxValue;                     for (j 0; j i; j)                     {                         if (P[j 1, i] true 1 C[j] C[i])                         {                             C[i] 1 C[j];                         }                     }                 }             }             return C[n - 1];         }         #endregion #region 算法5         private static string PPP_Hashcode(int a, int b)         {             return a.ToString() b.ToString();         } public static int Min_Palindrome_Partiion_Memoizatoin(string input, int i, int j, Hashtable memo)         {             if (i j)             {                 return 0;             }             string ij PPP_Hashcode(i, j);             if (memo.ContainsKey(ij))             {                 return (int)memo[ij];             } if (i j)             {                 memo.Add(ij, 0);                 return 0;             }             if (PPP_IsPalindrome(input, i, j))             {                 memo.Add(ij, 0);                 return 0;             }             int minimum Int32.MaxValue; for (int k i; k j; k)             {                 int left_min Int32.MaxValue;                 int right_min Int32.MaxValue;                 string left PPP_Hashcode(i, k);                 string right PPP_Hashcode(k 1, j); if (memo.ContainsKey(left))                 {                     left_min (int)memo[left];                 }                 if (memo.ContainsKey(right))                 {                     right_min (int)memo[right];                 } if (left_min Int32.MaxValue)                 {                     left_min Min_Palindrome_Partiion_Memoizatoin(input, i, k, memo);                 }                 if (right_min Int32.MaxValue)                 {                     right_min Min_Palindrome_Partiion_Memoizatoin(input, k 1, j, memo);                 }                 minimum Math.Min(minimum, left_min 1 right_min);             } memo.Add(ij, minimum); return (int)memo[ij];         }         #endregion     } }   POWER BY TRUFFER.CN  4 源代码 using System; using System.Collections; using System.Collections.Generic;namespace Legalsoft.Truffer.Algorithm {public static partial class Algorithm_Gallery{#region 算法1private static bool PPP_IsPalindrome(string String, int i, int j){while (i j){if (String[i] ! String[j]){return false;}i;j--;}return true;}public static int Min_Palindrome_Partion(string str, int i, int j){if (i j || PPP_IsPalindrome(str, i, j)){return 0;}int ans Int32.MaxValue, count;for (int k i; k j; k){count Min_Palindrome_Partion(str, i, k) Min_Palindrome_Partion(str, k 1, j) 1;ans Math.Min(ans, count);}return ans;}#endregion#region 算法2public static int Min_Palindrome_Partion(string str){int n str.Length;int[,] C new int[n, n];bool[,] P new bool[n, n];int i, j, k, L;for (i 0; i n; i){P[i, i] true;C[i, i] 0;}for (L 2; L n; L){for (i 0; i n - L 1; i){j i L - 1;if (L 2){P[i, j] (str[i] str[j]);}else{P[i, j] (str[i] str[j]) P[i 1, j - 1];}if (P[i, j] true){C[i, j] 0;}else{C[i, j] int.MaxValue;for (k i; k j - 1; k){C[i, j] Math.Min(C[i, j], C[i, k] C[k 1, j] 1);}}}}return C[0, n - 1];}#endregion#region 算法3public static int Min_Cutting(string a){int[] cut new int[a.Length];bool[,] palindrome new bool[a.Length, a.Length];for (int i 0; i a.Length; i){int minCut i;for (int j 0; j i; j){if (a[i] a[j] (i - j 2 || palindrome[j 1, i - 1])){palindrome[j, i] true;minCut Math.Min(minCut, j 0 ? 0 : (cut[j - 1] 1));}}cut[i] minCut;}return cut[a.Length - 1];}#endregion#region 算法4public static int Min_Palindrome_Partion_Second(string str){int n str.Length;int[] C new int[n];bool[,] P new bool[n, n];int i, j, L;for (i 0; i n; i){P[i, i] true;}for (L 2; L n; L){for (i 0; i n - L 1; i){j i L - 1;if (L 2){P[i, j] (str[i] str[j]);}else{P[i, j] (str[i] str[j]) P[i 1, j - 1];}}}for (i 0; i n; i){if (P[0, i] true){C[i] 0;}else{C[i] int.MaxValue;for (j 0; j i; j){if (P[j 1, i] true 1 C[j] C[i]){C[i] 1 C[j];}}}}return C[n - 1];}#endregion#region 算法5private static string PPP_Hashcode(int a, int b){return a.ToString() b.ToString();}public static int Min_Palindrome_Partiion_Memoizatoin(string input, int i, int j, Hashtable memo){if (i j){return 0;}string ij PPP_Hashcode(i, j);if (memo.ContainsKey(ij)){return (int)memo[ij];}if (i j){memo.Add(ij, 0);return 0;}if (PPP_IsPalindrome(input, i, j)){memo.Add(ij, 0);return 0;}int minimum Int32.MaxValue;for (int k i; k j; k){int left_min Int32.MaxValue;int right_min Int32.MaxValue;string left PPP_Hashcode(i, k);string right PPP_Hashcode(k 1, j);if (memo.ContainsKey(left)){left_min (int)memo[left];}if (memo.ContainsKey(right)){right_min (int)memo[right];}if (left_min Int32.MaxValue){left_min Min_Palindrome_Partiion_Memoizatoin(input, i, k, memo);}if (right_min Int32.MaxValue){right_min Min_Palindrome_Partiion_Memoizatoin(input, k 1, j, memo);}minimum Math.Min(minimum, left_min 1 right_min);}memo.Add(ij, minimum);return (int)memo[ij];}#endregion} }
http://www.pierceye.com/news/914945/

相关文章:

  • 网站建设项目安排计划表wordpress博客官网登陆账号密码
  • 无锡网络公司网站建设app微信公众号平平面设计培训价格
  • 免费的黄冈网站有哪些平台可以用微信支付制作网站的步骤和过程
  • 杭州的网站设计公司漂亮的网站是什么建设出来的
  • 全屏网站代码佛山专业网站建设公司推荐
  • 自己做信息网站有什么设计网站
  • 检察网站建设请示wordpress 重定向多
  • 做网站用什么服务器比较好线上推广网络公司
  • 长春营销型网站制作内蒙古建设部网站官网
  • 做家教的网站微网站可以自己做吗
  • 网站优化新闻关键词挖掘工具爱网
  • 研究生院 网站 建设广州网站建设策划
  • 企业建站找哪个公司网站退出率
  • 汕头企业建站系统高密微网站建设
  • 企业建设网站个人总结报告中山蓝图科技网站建设
  • 网站规划作品邯郸免费发布信息平台
  • html5手机网站源码网站备案要如何取消
  • 商城建设网站制作微信网站模板源码
  • 品牌型网站制作公司想做百度推广找谁
  • 浙江建设监理协会官方网站网站建设的公司选择哪家好
  • 优秀网站及网址沙漠风网站建设6
  • 做数据表格的网站出口网站建设方案
  • 广州网站建设信息科技有限公司福建省亿力电力建设有限公司网站
  • 电子商务网站开发 ppt湛江做网站报价
  • 网站建设框架图wordpress 固定链接设置
  • 内蒙古工程建设协会网站seo文章外包
  • 网站建设免费的服务器商丘推广公司
  • 网站设计大概价格设计网络平台的公司
  • phpcms中的网站介绍页中文去掉wordpress
  • 网站的建设心得怎么做网站淘宝转换工具