5960. 将标题首字母大写

添加链接描述
给你一个字符串 title ,它由单个空格连接一个或多个单词组成,每个单词都只包含英文字母。请你按以下规则将每个单词的首字母 大写 :

  • 如果单词的长度为 1 或者 2 ,所有字母变成小写。
  • 否则,将单词首字母大写,剩余字母变成小写。

请你返回 大写后 的 title 。

示例 1:
输入:title = “capiTalIze tHe titLe”
输出:“Capitalize The Title”
解释:
由于所有单词的长度都至少为 3 ,将每个单词首字母大写,剩余字母变为小写。

提示:
1 <= title.length <= 100
title 由单个空格隔开的单词组成,且不含有任何前导或后缀空格。
每个单词由大写和小写英文字母组成,且都是 非空 的。

将字符串以空格分开成数组
遍历此数组

  • 字符串长度小于等于2,转小写
  • 大于2,字符串转小写,将首字母大写
    可以用字符数组,或先拼接大写首字符再拼接余下的字符串
  • 结尾少一次空格
class Solution {public String capitalizeTitle(String title) {String[] ret = title.split(" ");StringBuilder sb = new StringBuilder();for(int i = 0; i < ret.length; i++) {if(ret[i].length() <= 2) {ret[i] = ret[i].toLowerCase();}else {String str = ret[i].toLowerCase(); // 全转小写// 字符数组 首字母大写char[] ch = str.toCharArray();ch[0] = Character.toUpperCase(ch[0]);ret[i] = new String(ch);}sb.append(ret[i]);if(i < ret.length - 1) { // 空格sb.append(" ");}}return sb.toString();}
}
class Solution {public String capitalizeTitle(String title) {String[] ret = title.split(" ");StringBuilder sb = new StringBuilder();for(int i = 0; i < ret.length; i++) {if(ret[i].length() <= 2) {ret[i] = ret[i].toLowerCase();sb.append(ret[i]);}else {sb.append(Character.toUpperCase(ret[i].charAt(0)));sb.append(ret[i].substring(1).toLowerCase());}if(i < ret.length - 1) {sb.append(" ");}}return sb.toString();}
}
5961. 链表最大孪生和

添加链接描述
在一个大小为 n 且 n 为 偶数 的链表中,对于 0 <= i <= (n / 2) - 1 的 i ,第 i 个节点(下标从 0 开始)的孪生节点为第 (n-1-i) 个节点 。

比方说,n = 4 那么节点 0 是节点 3 的孪生节点,节点 1 是节点 2 的孪生节点。这是长度为 n = 4 的链表中所有的孪生节点。
孪生和 定义为一个节点和它孪生节点两者值之和。

给你一个长度为偶数的链表的头节点 head ,请你返回链表的 最大孪生和 。

示例 1:
输入:head = [5,4,2,1]
输出:6
解释:
节点 0 和节点 1 分别是节点 3 和 2 的孪生节点。孪生和都为 6 。
链表中没有其他孪生节点。
所以,链表的最大孪生和是 6 。

1、取val值 用List计算

class Solution {public int pairSum(ListNode head) {if(head == null) {return 0;}List<Integer> list = new ArrayList<>();ListNode cur = head;// 将 val 加入 listwhile(cur != null) {list.add(cur.val);cur = cur.next;}// 遍历一半int max = 0;for(int i = 0; i < list.size() / 2; i++) {max = Math.max(max, list.get(i) + list.get(list.size() - 1 - i));}return max;}
}

2、快慢指针反转链表

class Solution {public int pairSum(ListNode head) {if(head == null) {return 0;}// 找中间节点ListNode fast = head;ListNode slow = head;while(fast != null && fast.next != null) {fast = fast.next.next;slow = slow.next;}// 反转ListNode cur = slow.next;while(cur != null) {ListNode curNext = cur.next;cur.next = slow;slow = cur;cur = curNext;}// 求最大和int maxSum = 0;while(head != slow) {maxSum = Math.max(maxSum, head.val + slow.val);if(head.next == slow) {  // 偶数个break;}head = head.next;slow = slow.next;}return maxSum;}
}
2131. 连接两字母单词得到的最长回文串

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

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

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

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

示例 1:

输入:words = [“lc”,“cl”,“gg”]
输出:6
解释:一个最长的回文串为 “lc” + “gg” + “cl” = “lcggcl” ,长度为 6 。
“clgglc” 是另一个可以得到的最长回文串。

class Solution {public static int longestPalindrome(String[] words) {HashMap<String, Integer> map = new HashMap<>();for(String str : words) { // 统计单词次数map.put(str, map.getOrDefault(str, 0) + 1);}int ans = 0; // 最长回文串长度boolean mid = false; // 是否含有中心单词for(String str : map.keySet()) {StringBuilder sb = new StringBuilder(str).reverse(); // 反转String rev = sb.toString();// 1、两个字符相同的单词 成对选择该单词if (str.charAt(0) == str.charAt(1)) {if(map.get(str) % 2 != 0) { // 中心单词mid = true;}ans += map.get(str) / 2 * 4;} else if(map.containsKey(rev)) { // 2、两个字符不同的单词 成对选择反转单词int cnt = Math.min(map.get(str), map.get(rev));ans += cnt * 4;map.put(str, map.get(str) - cnt);map.put(rev, map.get(rev) - cnt);}}if(mid) {ans += 2;}return ans;}
}

LeetCode 第 69 场力扣双周赛相关推荐

  1. Leetcode周赛复盘——第 71 场力扣双周赛与第 279 场力扣周赛

    双周赛: 5984. 拆分数位后四位数字的最小和 class Solution:def minimumSum(self, num: int) -> int:a, b, c, d = sorted ...

  2. C#实现力扣双周赛算法题:以组为单位订音乐会的门票订购

    目录: 前言: 一,算法题目描述 二,基本概念理解: 三,例子引入分析 四,代码解释 (1)安排座位函数 (2)查询函数 (2)求出1到RPS内的最小下标 (3)gather函数 (4)scatter ...

  3. LeetCode第 57 场力扣夜喵双周赛(差分数组、单调栈) and 第 251 场力扣周赛(状态压缩动规,树的序列化,树哈希,字典树)

    LeetCode第 57 场力扣夜喵双周赛 离knight勋章越来越近,不过水平没有丝毫涨进 1941. 检查是否所有字符出现次数相同 题目描述 给你一个字符串 s ,如果 s 是一个 好 字符串,请 ...

  4. LeetCode 第 58 场力扣夜喵双周赛(动态规划、马拉车算法,前后缀处理)/ 第 253 场力扣周赛(贪心,LIS)

    第 58 场力扣夜喵双周赛 两道600多 5193. 删除字符使字符串变好 题目描述 一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 . 给你一个字符串 s ,请你从 s 删除 最少 ...

  5. LeetCode 第 59 场力扣夜喵双周赛(最短路径数+迪杰斯特拉、动态规划+最长公共前缀问题) / 第255场周赛(二进制转换,分组背包,子集还原数组(脑筋急转弯))

    第 59 场力扣夜喵双周赛 两道400多五百,后两道都写出代码来了,但是都有问题,哭辽- 还有刚开始第一道测试好慢,搞心态了 5834. 使用特殊打字机键入单词的最少时间 有一个特殊打字机,它由一个 ...

  6. 力扣 双周赛补题 2086. 从房屋收集雨水需要的最少水桶数

    文章目录 题目 思路 AC代码 后记 题目 从房屋收集雨水需要的最少水桶数 思路 思路是贪心,因为我们需要从左向右找寻所有的水桶数,所以我们对于每一个房屋都优先判断右边是否能放水桶,右边不能放就看左边 ...

  7. Leetcode 第 69 场双周赛记录

    Leetcode 第 69 场双周赛记录 1.第一题 5960. 将标题首字母大写 难度:easy 给你一个字符串 title ,它由单个空格连接一个或多个单词组成,每个单词都只包含英文字母.请你按以 ...

  8. 第一次LeetCode周赛心得(力扣-cn周赛,使用python3)

    第一次力扣参赛:第 174 场力扣周赛 第 174 场力扣周赛赛题: https://leetcode-cn.com/circle/discuss/lEfEkb/view/OrAJAh/ 第 174 ...

  9. 第 304 场力扣周赛

    1.Introduction 平常做代码题目较少,今天迟迟不能入睡,我思考了下,确实有很大概率,对十年内做的目标,有很大可能不能实现.于是做了几道题勉强让自己心安.一边喝着牛栏山壮精神,一边写Leet ...

最新文章

  1. 手动制造报错_一个订单管理系统帮你轻松应对复杂的生产订单管理
  2. golang错误处理机制(异常处理)
  3. python脚本自动运行失败_Linux下Python脚本自启动和定时启动的详细步骤
  4. 计算机学科技术前沿:云计算主要平台及特性
  5. python学生管理系统连接数据库版,很详细,这个是用函数版的增删改查,拿去用,不谢。...
  6. zebra 的Thread机制 -- 003
  7. php斐波那契数列循环,两种php实现斐波那契数列的方法
  8. 467.环绕字符串中唯一的子字符串
  9. (八:2020.08.27)CVPR 2020 追踪之论文纲要(译)
  10. MaxCompute SQL
  11. 外地人在成都买房被限购怎么办?看完就知道
  12. sipp 注册脚本测试服务端含(401)注册流程(UAC )
  13. 举个栗子!Tableau 技巧(197):用 Prep 数据去重的三种场景
  14. 5年,从5元到500万,我的创业经历(转自VFP精英站,未完)
  15. crux系列写作-篇首
  16. 1005打印任务取消不了 hp_怎么办?HP1005打印机显示正在打印却打 – 手机爱问
  17. 见微知著:CPU的工作原理
  18. 盘点各国自己开发的操作系统
  19. 用什么词典可以翻译php,【欧陆词典】一款自定义词典库、支持划词翻译的万能词典...
  20. stm32单片机实现旋钮功能

热门文章

  1. mysql 连接字符集_MySQL字符集详解
  2. oracle 添加归档日志文件_oracle 归档日志文件路径设置
  3. 【洛谷】P1111 修复公路
  4. MySQL Processlist 讲解
  5. [Oracle]如果误删了某个数据文件,又没有被备份,能否恢复?
  6. 东部分布式光伏迎来发展高潮
  7. Spring学习4-面向切面(AOP)之Spring接口方式
  8. A.2.3-猜数字游戏
  9. 2018.12.20 Spring环境如何搭建
  10. java webservice wsimport 无法将名称 'soapenc:Array' 解析为 'type definition' 组件 时对应的解决方法...