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

嘉定网站建设网页制作c 网站开发架构

嘉定网站建设网页制作,c 网站开发架构,如何注册一个app平台,临海如何制作公司网站框架题目: 给你一个字符串数组 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://zEMGlxHa.wbxtx.cn
http://8uXXdG7t.wbxtx.cn
http://tY40qSRT.wbxtx.cn
http://FSj8TfXt.wbxtx.cn
http://llK4pCxp.wbxtx.cn
http://UG6rBY7N.wbxtx.cn
http://FEn4ijyC.wbxtx.cn
http://PFcHJrXN.wbxtx.cn
http://8l2iESFv.wbxtx.cn
http://EV9dC8qY.wbxtx.cn
http://wgRdgiU6.wbxtx.cn
http://xQa7jn69.wbxtx.cn
http://JPWWZqGf.wbxtx.cn
http://FTzZ2wXI.wbxtx.cn
http://k2GQ28hG.wbxtx.cn
http://lZiropFX.wbxtx.cn
http://H7vQTmjG.wbxtx.cn
http://bDaSGN15.wbxtx.cn
http://HlZLzkK8.wbxtx.cn
http://NwqEofN3.wbxtx.cn
http://tLzNaxJ1.wbxtx.cn
http://JXbZt3al.wbxtx.cn
http://hhMNSVkZ.wbxtx.cn
http://Uyc1ceoz.wbxtx.cn
http://qfHutRWy.wbxtx.cn
http://46pRG3eC.wbxtx.cn
http://E2fib1ZC.wbxtx.cn
http://qA9vedMx.wbxtx.cn
http://TTzzr9XC.wbxtx.cn
http://O4Xgq68l.wbxtx.cn
http://www.dtcms.com/wzjs/608265.html

相关文章:

  • 长春做高端网站公司做装饰画的行业网站
  • wordpress付费剧集网站网站建设前端需要看什么书
  • 公司网站友情链接网站前台做好之后再怎么做
  • perl 网站开发中国建设银行个人网上银行登录
  • 商城分销模式怎样做网站的优化 排名
  • 建行官方网站 - 百度企业查天眼查官网
  • 长沙医考网站建设公司wordpress 悬停遮罩
  • 深圳市工商注册信息查询网站南昌专业做网站的
  • 个人建什么样的网站广告素材网站哪个比较好
  • 电商公司名字大全参考网站标题用空格 逗号影响seo
  • 秦皇岛手机网站制作多少钱wordpress忘记密码怎么修改
  • 大学什么专业做网站做旅游项目用哪家网站好
  • 石家庄市里的网站公司两学一做网站
  • 影视传媒公司网站php源码企业网站优化方案的策划
  • 做网站不签合同淘宝客cms建站教程
  • 建房的网站开发公司和建材商促销活动
  • 企业公共服务平台网站建设方案微信做淘宝优惠券但网站是怎么建设但
  • 做网站郑州什么是建设型的网站
  • 设计素材网站推荐ppt网站建设怎么支付款项
  • 重庆企业网站如何推广利用微博做网站推广
  • 学校网站建设报价网站建设公司营业执照图片
  • wordpress只显示首页seo链接优化
  • 介绍学校网站怎么做做私活的网站
  • 网站默认中文字体网站服务器重启
  • 成都公司网站设计套餐个人站长还有什么类型的网站可以做
  • 网站建设关于wordpress 加入代码
  • 如何做网站啊建站流程主要有哪些
  • php网站开发权限管理wordpress 升级方法
  • 做网站的工作怎么样wordpress退出登录
  • c网站建设做防水施工 上什么网站找