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

加强网站的建设与管理北京网站制作建设公司

加强网站的建设与管理,北京网站制作建设公司,90设计网站最便宜终身,做海免费素材网站题目: 给你一个字符串数组 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://www.dtcms.com/wzjs/239980.html

相关文章:

  • 门户网站开发需求分析广告多的网站
  • 上海网站推广哪家好百度识图搜索网页版
  • 做慕课的网站网店推广营销方案
  • 武汉网站建设武汉网络公司seo高端培训
  • 服务器wordpress怎么做神马搜索排名seo
  • 网站建设公司代理商天门网站建设
  • 做网站需要会编程语言吗免费推广引流app
  • 网站频繁改版竞价推广开户多少钱
  • 动态网站开发作业报告廊坊首页霸屏排名优化
  • 网站服务器备案查询网站网络营销常用的工具和方法
  • 广告设计公司怎么找业务安新seo优化排名网站
  • 有做销售产品的网站网站建设关键词排名
  • 旅游做攻略网站免费企业网站模板源码
  • 一个人只做网站的流程抖音优化是什么意思
  • tp5网站文档归档怎么做免费开通网站
  • 精美的网站磁力狗在线搜索
  • 做网站如何引流写软文能赚钱吗
  • 做民宿的有哪些网站申京效率值联盟第一
  • 包装材料东莞网站建设企业营销策划方案
  • 建设淘宝客网站营业推广策略
  • 做一元购网站会被封吗关键词什么意思
  • 故城建设局政府网站我想做app推广怎么做
  • 天津自制网站建设产业短视频营销优势
  • 新开店铺怎么做推广北京网站seo
  • 模板手机网站建设价格明细表成都seo整站
  • 睢宁建网站公司网站优化
  • 做网站需要icp在线咨询
  • 网站建设公司对父亲节宣传口号互联网推广公司排名
  • 电影网站怎么做不犯法怎么制作自己公司网站
  • 免费申请注册网站百度搜索风云榜小说排行榜