leetcode301.删除无效字符

leetcode301.删除无效字符

题目

给你一个由若干括号和字母组成的字符串 s ,删除最小数量的无效括号,使得输入的字符串有效。  返回所有可能的结果。答案可以按 任意顺序 返回。 

用例

输入:s = "()())()" 输出:["(())()","()()()"] 
输入:s = "(a)())()" 输出:["(a())()","(a)()()"] 
输入:s = ")(" 输出:[""] 

求解

/**  * @param {string} s  * @return {string[]}  */ var removeInvalidParentheses = function(s) {     let mySet = new Set()     let maxlength = 0     let res = []     dfs(0,0,0,s,'')     for(let v of mySet){         if(v.length==maxlength){             res.push(v)         }     }     return res      function dfs(left,right,index,str,curr){         if(right==left){             mySet.add(curr)             maxlength = Math.max(maxlength,curr.length)         }         if(right>left||index==str.length){             return         }         if(str[index]=='('){             dfs(left+1,right,index+1,str,curr+'(')             dfs(left,right,index+1,str,curr)         }else if(str[index]==')'){             dfs(left,right+1,index+1,str,curr+')')             dfs(left,right,index+1,str,curr)         }else{             dfs(left,right,index+1,str,curr+str[index])         }     } }; 

推荐这些文章:

Python编程题52--在排序列表中查找元素的第一个和最后一个位置

题目
给定一个按照升序排列的整数列表 nums,和一个目标值 target。请查找出给定目标值在列表中的开始位置和结束位置。
如果列表中不存在目标值 target,则返回 [-1, -1]。

例如:
给定一个列表 nums :[5, 7, 7, 8, 8, 10],target = 8
返回结果:[3, 4]
给定一个列表 nums :[5, 7, 7, 8, 8, 10],target = 6
返回结果:[-1, -1]
给定一个列表 nums :[],target = 0
返回结果:[-1, -1]

实现思路1

定义2个变量:left_index、right_index ...

【每日一题】2022年1月4日-22. 括号生成

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

 
 答案:dfs或回溯

class Solution {
private List<String> res = new ArrayList<>();
public List<String> generateParenthesis(int n) {
dfs(n, n, "");
return res;
}

public void dfs(int left, int righ...

php 判断字符串是否以某字符串结尾的方法和截取指定两个字符之间的字符串

判断字符串是否以某字符串结尾的方法
// $str:原字符串,$suffix:子字符串(区分大小写)
function endWith($str, $suffix)
{
$length = strlen($suffix);
if ($length == 0) {
return true;
}
return (substr($str, -$length) === $suffix);
}

截取指定两个字符之间的字符串
function cut($begin, $end, $str)
{
$b = mb_strpos($str,...

leetcode 3 无重复字符的最长子串 滑动窗口

类似于紫书例题8-7.
用滑动窗口。

class Solution {
public:
int lengthOfLongestSubstring(string s) {
set<char>ss;
int left=0,right=0,ans=0;
while(right<s.length())
{
while(right<s.length()&&!ss.count(s[right])) ss.insert(s[right++]);
...

BM36 判断是不是平衡二叉树

/* function TreeNode(x) {
this.val = x;
this.left = null;
this.right = null;
} */
function IsBalanced_Solution(pRoot)
{
// write code here
function getDepth(root){
if(root === null) return 0
let left = getDepth(root.left)
if(left === -1) return -1
...

python输入一个字符串然后空格切割在统计每个字母出现的次数

代码:

def count_number(target_str):
d = {}
for i in target_str:
if i in d:
d[i] += 1
else:
d[i] = 1
return d

测试:

s = "jgiwejgiwiwrijhiwrihowWrohwrih"
print(count_number(s))

结果:

{'j': 3, 'g': 2, 'i': 7, 'w': 6, 'e': 1, 'r': 4, 'h': 4, 'o': 2, 'W...

leetcode301 删除无效的括号

思路:
dfs+剪枝。
实现:

1 class Solution {
2 public:
3 int maxn=0;//已经找到的最大合法长度
4 void dfs(string&s,int cur,int cnt,string c,vector<string>&res,int maxp){
5 int l=s.length();
6 if(cur==l){
7 if(cnt==0){
8 res.push_back(c);
9 ...

根据位置返回字符

 charAt(index)   返回指定位置的字符(index 字符串你的索引号)  str.charAt(0)
    charCodeAt(index)  获取指定位置处字符的ASCII码(index索引号)  str.charCodeAt(0)
    str[index]  过去指定位置处字符   HTML5,IE8+支持  和charAt( )等效
    1.charAt(index) 根据位置返回字符

<script>...

模拟银行登陆

#QQ632510661欢迎一起学习pythonzh_word = str(632510661)mm_word = str(980712)def fun(): index = 3 while index: zh = input("请输入账号:") mm = input("请输入密码:") index -= 1 if zh_word==zh and mm_word==mm: print("欢迎来到我的python") break else: pri...

数组中的第k大元素

leetcode上面题目
需要运用到快速排序,position方法返回数组此时的数组下标index,如果index的值和nums.length-k == index的话,直接放回nums[index],
如果k < index的话,需要对left、index - 1进行继续划分,否则对index + 1, right找到index值

class Solution {
public int findKthLargest(int[] nums, int k) {
return sort(nums, 0, nums.length - 1, nums.length -...

文章标题:leetcode301.删除无效字符
文章链接:https://www.dianjilingqu.com/2683.html
本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:saisai#email.cn,感谢支持理解。
THE END
< <上一篇
下一篇>>