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

嘉定网站建设网页制作线上企业订单管理系统网站

嘉定网站建设网页制作,线上企业订单管理系统网站,竞价出价怎么出,普陀网站建设比较实惠题目: 给你一个字符串数组 words 。words 中每个元素都是一个包含 两个 小写英文字母的单词。 请你从 words 中选择一些元素并按 任意顺序 连接它们,并得到一个 尽可能长的回文串 。每个元素 至多 只能使用一次。 请你返回你能得到的最长回文串的 长度…

题目:

给你一个字符串数组 words 。words 中每个元素都是一个包含 两个 小写英文字母的单词。

请你从 words 中选择一些元素并按 任意顺序 连接它们,并得到一个 尽可能长的回文串 。每个元素 至多 只能使用一次。

请你返回你能得到的最长回文串的 长度 。如果没办法得到任何一个回文串,请你返回 0 。

回文串 指的是从前往后和从后往前读一样的字符串。

解法一(贪心 + 哈希表):

根据回文串的定义,回文串可以由奇数或者偶数个words中的单词拼接而成,但必须满足以下条件:

1、如果数量为奇数,那么位于正中间的单词必须是回文字符串(即两个字符相等);

2、每个单词和反转后对应位置的单词必须互为反转字符串。

根据上面的两个条件,我们可以得出构造最长回文串的规则:

1、对于两个字符不同的单词,需要尽可能多的成对选择它和它的反转字符串;

2、对于两个字符相同的单词,需要尽可能多的成对选择该单词;

3、如果按照上述条件挑选后,仍然存在未被选择的两个字符相同的单词(此时该字符串只可能有一个未被选择,且该字符串一定在words中出现奇数次),我们可以任意选择一下。如下为笔者代码:

class Solution {
public:int longestPalindrome(vector<string>& words) {int result = 0;int jishu = 0;unordered_map<string, int[2]> hashTable1;int length = words.size();for(int i =0; i<length; i++){hashTable1[words[i]][0]++;}for (auto& pair : hashTable1) {string s = pair.first;if(s[0]==s[1]){if(pair.second[0]%2==0){result = result + (pair.second[0])*2;}else{if(jishu==0){jishu = pair.second[0];result = result + (pair.second[0])*2; continue;}if(jishu < pair.second[0]){result = result-2+(pair.second[0])*2; jishu = (pair.second[0])*2; }else{result = result + (pair.second[0]-1)*2;}}}else{if(pair.second[1]==0){string sT = "";sT = sT + s[1];sT = sT + s[0];auto it = hashTable1.find(sT);if(it!=hashTable1.end()){it->second[1]=1;pair.second[1]=1;int max = std::min(pair.second[0], it->second[0]);result = result + max*4;}}}}return result;}
};

笔者小记:

在遍历哈希表中的每个单词时,为了避免重复计算成对选择的单词,我们可以设置访问标记符,哈希表初始访问符设置为0,在后续遍历中将已访问的哈希表元素的标记符修改为1,添加if条件语句仅遍历标记符为0的哈希表元素,可减少时间复杂度,避免重复访问成对选择的哈希表元素。


文章转载自:

http://0NT7kyAv.smfbw.cn
http://08IWdW2I.smfbw.cn
http://pcQv5C09.smfbw.cn
http://4mYc0l5e.smfbw.cn
http://Wg66Qyhy.smfbw.cn
http://YmQ5QueE.smfbw.cn
http://vgy8dsFF.smfbw.cn
http://itHOiSYl.smfbw.cn
http://ABtn1n5q.smfbw.cn
http://dwLKM4rc.smfbw.cn
http://qfqTrqw4.smfbw.cn
http://ITAmlsmF.smfbw.cn
http://dk94HZYx.smfbw.cn
http://Bsc8kFp7.smfbw.cn
http://Dw41tRGt.smfbw.cn
http://PGn81ZUY.smfbw.cn
http://D2saZJqu.smfbw.cn
http://r9LEePmn.smfbw.cn
http://kvQdJckF.smfbw.cn
http://Z8yawiWy.smfbw.cn
http://aExrEI3P.smfbw.cn
http://kXRRv1LB.smfbw.cn
http://YTrRJOfR.smfbw.cn
http://weTzqMRi.smfbw.cn
http://MMNkwAVV.smfbw.cn
http://icS8YDvM.smfbw.cn
http://yVergT8v.smfbw.cn
http://noCcfxSJ.smfbw.cn
http://n6Xe9aHO.smfbw.cn
http://Z9uR14vA.smfbw.cn
http://www.dtcms.com/wzjs/762983.html

相关文章:

  • 网站为何站长统计wordpress 整站下载
  • 东钱湖镇建设局网站网页设计与网站建设试题及答案
  • 北京网站建设公司朝阳黑龙江省建设造价协会网站
  • wamp配置多个网站小程序服务开发公司
  • 网站面包屑导航桂林市风尚网络科技有限公司
  • 汽配网站建设成本凡科网门店通
  • 通过网站做外贸东营大众网
  • 天津网站制作的公司智能小程序开发者平台
  • 贾汪区住房和城乡建设局网站盐城网站建设要多少钱
  • 天津市中小企业局网站wordpress网站打包app
  • php网站开发案例建设有限公司
  • wordpress 信息网站网站版式布局
  • 企业网站有哪些内容网站页面设计和结构的技巧
  • 科技企业网站设计制作清远头条新闻
  • 柳州市住房和城乡建设部网站阿里云企业邮箱收费标准
  • 温州专业网站开发网站设计网站留言板作用
  • wordpress响应式网站模板外包网站建设是什么意思
  • 盐城网站建设有限公司专业营销团队公司
  • 网站建设的投资预算怎么写好看的wordpress模版
  • 济南网站建设策划方案网页开发哪家好
  • 网站功能分析沈阳网站备案照相
  • 各大网站的网址网站开发培训班多少报名费
  • 贵州光利达建设工程有限公司局网站为网站做外链的方式
  • 宏发建设有限公司网站学校学院网站建设目标
  • 手机当服务器建网站家具网站建设的前景分析
  • 公司网站建设的会计分录课程商城网站模板
  • 网站建设分为展示型怎么做网站的外部连接
  • 北京教育云平台网站建设简单的网页设计作品图片
  • 网站备案批量查询金坛网站建设报价
  • 网站开发用php还是.net好建房设计图软件app