编写一个C++程序,有个输出最长的符合要求的字母。

编写程序:
如果一个字母延伸到中线之上,如d或f,则称其有上出头部分(ascender)。
如果一个字母延伸到中线之下,如p或g,则称其有下出头部分(dexcender)。
编写程序,读入一个单词文件,输出最长的即不包含上出头部分,也不包含
下出头部分的单词。

用动态规划
和查找最长公共子串的算法类似,先构造后缀数组,然后排序,遍历,找到最长的。