欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 【数据结构与算法 | 每日一题 | 力扣篇】力扣2390, 2848

【数据结构与算法 | 每日一题 | 力扣篇】力扣2390, 2848

2024/10/25 23:34:51 来源:https://blog.csdn.net/2301_80912559/article/details/142236769  浏览:    关键词:【数据结构与算法 | 每日一题 | 力扣篇】力扣2390, 2848

1. 力扣2390:从字符串中删除星号

1.1 题目:

给你一个包含若干星号 * 的字符串 s 。

在一步操作中,你可以:

  • 选中 s 中的一个星号。
  • 移除星号 左侧 最近的那个 非星号 字符,并移除该星号自身。

返回移除 所有 星号之后的字符串

注意:

  • 生成的输入保证总是可以执行题面中描述的操作。
  • 可以证明结果字符串是唯一的。

示例 1:

输入:s = "leet**cod*e"
输出:"lecoe"
解释:从左到右执行移除操作:
- 距离第 1 个星号最近的字符是 "leet**cod*e" 中的 't' ,s 变为 "lee*cod*e" 。
- 距离第 2 个星号最近的字符是 "lee*cod*e" 中的 'e' ,s 变为 "lecod*e" 。
- 距离第 3 个星号最近的字符是 "lecod*e" 中的 'd' ,s 变为 "lecoe" 。
不存在其他星号,返回 "lecoe" 。

示例 2:

输入:s = "erase*****"
输出:""
解释:整个字符串都会被移除,所以返回空字符串。

提示:

  • 1 <= s.length <= 105
  • s 由小写英文字母和星号 * 组成
  • s 可以执行上述操作

1.2 思路:

第一眼感觉可以栈秒了,觉得可变字符串用起来会简单一点,api调用工程师。

1.3 题解:

class Solution {public String removeStars(String s) {StringBuffer sb = new StringBuffer();for(int i = 0; i < s.length(); i++){char ch = s.charAt(i);if(ch != '*'){sb.append(ch);}else{sb.deleteCharAt(sb.length() - 1);}}return sb.toString();}
}

2. 力扣2848:与车相交的点

2.1 题目:

给你一个下标从 0 开始的二维整数数组 nums 表示汽车停放在数轴上的坐标。对于任意下标 inums[i] = [starti, endi] ,其中 starti 是第 i 辆车的起点,endi 是第 i 辆车的终点。

返回数轴上被车 任意部分 覆盖的整数点的数目

示例 1:

输入:nums = [[3,6],[1,5],[4,7]]
输出:7
解释:从 1 到 7 的所有点都至少与一辆车相交,因此答案为 7 。

示例 2:

输入:nums = [[1,3],[5,8]]
输出:7
解释:1、2、3、5、6、7、8 共计 7 个点满足至少与一辆车相交,因此答案为 7 。

提示:

  • 1 <= nums.length <= 100
  • nums[i].length == 2
  • 1 <= starti <= endi <= 100

2.2 思路:

用数组来标记车经历的足迹 。

2.3 题解:

class Solution {public int numberOfPoints(List<List<Integer>> nums) {// 用数组来记录车子走过的路程int[] visited = new int[101];// 数组元素默认值为0for(List<Integer> list : nums){// 取到首尾位置int i1 = list.get(0);int i2 = list.get(1);// 起点开始到终点,如果没有访问过,就标记for(int i = i1; i <= i2; i++){if(visited[i] == 0){visited[i] = 1;}}}int cn = 0;// 遍历数组记录for(int i : visited){if(i == 1){cn++;}}return cn;}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com