`

程序员面试题精选100题(46)-对称子字符串的最大长度

阅读更多
题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。

思路,把每个都看成是对称中心,然后向外扩展。。
int GetLongestSymmetricalLength_2(char* pString)
{
       if(pString == NULL)
              return 0;
       int symmeticalLength = 1;
       char* pChar = pString;
       while(*pChar != '\0')
       {
              // Substrings with odd lengt
              char* pFirst = pChar - 1;
              char* pLast = pChar + 1;
              while(pFirst >= pString && *pLast != '\0' && *pFirst == *pLast)
              {
                     pFirst--;
                     pLast++;
              }
              int newLength = pLast - pFirst - 1;
              if(newLength > symmeticalLength)
                     symmeticalLength = newLength;
              // Substrings with even length
              pFirst = pChar;
              pLast = pChar + 1;
              while(pFirst >= pString && *pLast != '\0' && *pFirst == *pLast)
              {
                     pFirst--;
                     pLast++;
              }
              newLength = pLast - pFirst - 1;
              if(newLength > symmeticalLength)
                     symmeticalLength = newLength;
              pChar++;
       }
       return symmeticalLength;
}
分享到:
评论

相关推荐

    程序员面试题精选100题-何海涛

    《程序员面试题精选100题—何海涛》是一份详实的IT面试准备资料,由何海涛整理发布,旨在帮助应届毕业生和求职者准备面向微软、谷歌等知名科技公司的面试。此资料不仅收录了精选的100道面试题目,还提供了详细的解题...

    程序员面试题精选100题

    程序员面试题精选100题 本资源是程序员面试题精选100题,涵盖了算法、数据结构、操作系统、计算机网络、数据库等多个领域。今天,我们将深入分析其中的一道题目,即将二元查找树转换成排序的双向链表。 知识点一:...

    程序员面试题精选100题.doc

    对于程序员面试,理解并能熟练应用这类问题的解决方案,展示了解数据结构和算法的能力,是评估应聘者编程技能的重要标准。同时,能清晰解释和分析递归过程,也是考察逻辑思维和问题解决能力的关键。

    程序员面试题精选100题(经典!)

    具体来说,文档中详细讨论了一个在程序员面试中常见的算法问题:如何将二元查找树(Binary Search Tree,BST)转换为一个排序的双向链表。这是一个涉及树的遍历、指针操作、递归思维的经典算法问题。下面将详细介绍...

    程序员面试题精选100题【数据结构 /算法】

    【程序员面试题精选100题【数据结构 /算法】】是针对求职程序员精心挑选的一系列面试题目,涵盖了数据结构和算法两大核心领域。这些题目旨在帮助应聘者提高面试技巧,提升对技术的理解,以便在激烈的就业市场竞争中...

    java程序员早期面试题汇总.zip

    ------------------------------------- java程序员早期面试题汇总 BAT经典面试题汇总.pdf Java常考面试题.pdf java面试题(题库全)....程序员面试题精选100题.pdf ... -------------------------------------

    程序员面试题精选100题.rar

    程序员面试题精选100题.rar

    程序员面试题精选100题.docx

    程序员面试题精选100题 本文档概述了程序员面试题精选100题,涵盖了C++面试题和笔试题,其中有一道典型的题目是将二元查找树转换成排序的双向链表。 知识点一:二元查找树(Binary Search Tree) * 二元查找树是...

    程序员面试题精选100题完整版

    - **连接节点**:连接左子链表的最右节点(即左子树的最大值节点)到当前节点,以及将当前节点连接到右子链表的最左节点(即右子树的最小值节点)。 - **返回结果**:如果当前节点是父节点的右孩子,则返回左子链表...

    程序员面试题精选-输出一个字符串的所有子串

    首先,我们需要理解子字符串的概念。在字符串 "abc" 中,它的每一个字符(如 "a", "b", "c")以及由连续字符组成的序列(如 "ab", "bc", "abc")都被称为该字符串的子串。题目要求按照特定顺序输出所有子串,即从...

    程序员面试题精选100题(更新至60)

    例如,本文提到的《程序员面试题精选100题》就旨在为即将进入职场的程序员提供一系列经典的技术面试题目,帮助他们系统地复习相关知识和技术要点,从而提升面试表现。 #### 4. 具体案例分析:将二叉查找树转化为...

    java程序员面试题150例-java常见面试题-java工程师面试题-java面试题大全

    java程序员面试题150例 java常见面试题 java工程师面试题 java面试题大全 带搜索功能,能非常方便的查找到你想要了解的 java面试题目 推荐大家下载。

Global site tag (gtag.js) - Google Analytics