牛客NC26 括号生成【中等 递归 Java,Go,PHP】

题目

在这里插入图片描述
题目链接:
https://www.nowcoder.com/practice/c9addb265cdf4cdd92c092c655d164ca

思路

在这里插入图片描述
答案链接:https://www.lintcode.com/problem/427/solution/16924

参考答案Java

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param n int整型* @return string字符串ArrayList*/public ArrayList<String> generateParenthesis (int n) {ArrayList<String> ans = new ArrayList<>();dfs(0, 0, "", n, ans);return ans;}public void dfs(int cnt1, int cnt2, String str, int n, ArrayList<String> ans) {if (cnt1 > n || cnt2 > n) return; // cnt1和cnt2不能大于nif (cnt1 < cnt2) return; //左括号数量不能多余右括号if (cnt1 == n && cnt2 == n) {ans.add(new String(str));return;}dfs(cnt1 + 1, cnt2, str + "(", n, ans); //搜索加左括号的情况dfs(cnt1, cnt2 + 1, str + ")", n, ans); //搜索加右括号的情况}
}

参考答案Go

package mainimport "fmt"/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param n int整型* @return string字符串一维数组*/
func generateParenthesis(n int) []string {ans := []string{}dfs(0, 0, "", n, &ans)return ans
}func dfs(cnt1 int, cnt2 int, str string, n int, ans *[]string) {if cnt1 > n || cnt2 > n { // cnt1和cnt2不能大于nreturn}if cnt1 < cnt2 { //左括号数量不能多余右括号return}if cnt1 == n && cnt2 == n {s := str*ans = append(*ans, s)return}str1 := fmt.Sprintf("%s%s", str, "(")dfs(cnt1+1, cnt2, str1, n, ans) //搜索加左括号的情况str2 := fmt.Sprintf("%s%s", str, ")")dfs(cnt1, cnt2+1, str2, n, ans) //搜索加右括号的情况
}

参考答案PHP

<?php/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param n int整型 * @return string字符串一维数组*/
function generateParenthesis( $n )
{$ans = array();dfs(0,0,'',$n,$ans);return $ans;
}function dfs($cnt1,$cnt2,$str,$n,&$ans){if ($cnt1 >$n || $cnt2 >$n) { // cnt1和cnt2不能大于nreturn;}if ($cnt1 < $cnt2) { //左括号数量不能多余右括号return;}if ($cnt1 == $n && $cnt2 == $n) {array_push($ans,$str);return;}dfs($cnt1+1, $cnt2, $str.'(', $n, $ans) ;//搜索加左括号的情况dfs($cnt1, $cnt2+1, $str.')', $n, $ans); //搜索加右括号的情况
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/289832.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Llama模型下载

最近llama模型下载的方式又又变了&#xff0c;所以今天简单更新一篇文章&#xff0c;关于下载的&#xff0c;首先上官网&#xff0c;不管在哪里下载你都要去官网登记一下信息&#xff1a;https://llama.meta.com/llama2 然后会出现下面的信息登记网页&#xff1a; 我这里因为待…

软件工程学习笔记12——运行维护篇

运行维护篇 一、版本发布1、关于软件版本2、版本发布前&#xff0c;做好版本发布的规划3、规范好发布流程&#xff0c;保障发布质量 二、DevOps工程师1、什么是 DevOps 三、线上故障1、遇到线上故障&#xff0c;新手和高手的差距在哪里2、大厂都是怎么处理线上故障的 四、日志管…

MGRE实验

MGRE实验 1、实验要求 2、实验分析 IP地址分类 私网IP&#xff1a;192.168.1.0等隧道IP&#xff1a;192.168.5.0和192.168.6.0公网IP&#xff1a;15.0.0.1等 配置IP地址 配置acl访问控制列表 用于将内部网络中的私有IP地址转换为公共IP地址&#xff0c;以实现与外部网络的通…

helm 部署 Kube-Prometheus + Grafana + 钉钉告警部署 Kube-Prometheus

背景 角色IPK8S 版本容器运行时k8s-master-1172.16.16.108v1.24.1containerd://1.6.8k8s-node-1172.16.16.109v1.24.1containerd://1.6.8k8s-node-2172.16.16.110v1.24.1containerd://1.6.8 安装 kube-prometheus mkdir -p /data/yaml/kube-prometheus/prometheus &&…

集成在零售行业的应用

随着科技的飞速发展&#xff0c;集成化应用正在各行各业中发挥着越来越重要的作用。在零售行业&#xff0c;集成技术的广泛应用不仅提升了运营效率&#xff0c;还优化了顾客体验&#xff0c;推动了行业的转型升级。本文将深入探讨集成在零售行业的应用&#xff0c;并展望其未来…

深度学习论文: Attention is All You Need及其PyTorch实现

深度学习论文: Attention is All You Need及其PyTorch实现 Attention is All You Need PDF:https://arxiv.org/abs/1706.03762.pdf PyTorch: https://github.com/shanglianlm0525/PyTorch-Networks 大多数先进的神经序列转换模型采用编码器-解码器结构&#xff0c;其中编码器将…

MySQL 8:GROUP BY 问题解决 —— 怎么关闭ONLY_FULL_GROUP_BY (详细教程)

在使用 GROUP BY 时&#xff0c;我们可能会遇到以下报错&#xff1a; Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column …… 这是因为我们在select语句中所查询的列并不被group by后面接的列所包含。 对于GROUP BY聚合操作&#xf…

flink on yarn-per job源码解析、flink on k8s介绍

Flink 架构概览–JobManager JobManager的功能主要有: 将 JobGraph 转换成 Execution Graph,最终将 Execution Graph 拿来运行Scheduler 组件负责 Task 的调度Checkpoint Coordinator 组件负责协调整个任务的 Checkpoint,包括 Checkpoint 的开始和完成通过 Actor System 与 …

8、鸿蒙学习-HAR

HAR&#xff08;Harmony Archive&#xff09;是静态共享包&#xff0c;可以包含代码、C库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。HAR不同于HAP&#xff0c;不能独立安装运行在设备上。只能作为应用模块的依赖项被引用。 一、创建…

边缘计算AI盒子目前支持的AI智能算法、视频智能分析算法有哪些,应用于大型厂矿安全生产风险管控

一、前端设备实现AI算法 主要是基于安卓的布控球实现&#xff0c;已有的算法包括&#xff1a; 1&#xff09;人脸&#xff1b;2&#xff09;车牌&#xff1b;3&#xff09;是否佩戴安全帽&#xff1b;4&#xff09;是否穿着工装&#xff1b; 可以支持定制开发 烟雾&#xf…

20221124 kafka实时数据写入Redis

一、上线结论 实现了将用户线上实时浏览的沉浸式视频信息&#xff0c;保存在Redis中这样一个功能。为实现沉浸式视频离线推荐到实时推荐提供了强有力的支持。目前只是应用在沉浸式场景&#xff0c;后续也能扩展到其他所有场景。用于两个场景&#xff1a;&#xff08;1&#xf…

Apache Hive的基本使用语法(二)

Hive SQL操作 7、修改表 表重命名 alter table score4 rename to score5;修改表属性值 # 修改内外表属性 ALTER TABLE table_name SET TBLPROPERTIES("EXTERNAL""TRUE"); # 修改表注释 ALTER TABLE table_name SET TBLPROPERTIES (comment new_commen…

掌握Flutter底部导航栏:畅游导航之旅

1. 引言 在移动应用开发中&#xff0c;底部导航栏是一种常见且非常实用的用户界面元素。它提供了快速导航至不同功能模块或页面的便捷方式&#xff0c;使用户可以轻松访问应用程序的各个部分。在Flutter中&#xff0c;底部导航栏也是一项强大的功能&#xff0c;开发者可以利用…

寄主机显示器被快递搞坏了怎么办?怎么破?

大家好&#xff0c;我是平泽裕也。 最近&#xff0c;我在社区里看到很多关于开学后弟弟寄来的电脑显示器被快递损坏的帖子。 看到它真的让我感到难过。 如果有人的数码产品被快递损坏了&#xff0c;我会伤心很久。 那么今天就跟大家聊聊寄快递的一些小技巧。 作为一名曾经的…

在scroll-view中使用input,input键盘弹出时,滚动页面,输入框内容会出现错位问题?

解决办法 <view classpages><view><scroll-view scroll-y"{{sysScroll}}" scroll-top"{{scrollTop}}" class"scroll-hei-2 bg-def">...<input bindfocus"onfocus" bindblur"onblur" placeholder&quo…

如何在Apache Arrow中定位与解决问题

如何在apache Arrow定位与解决问题 最近在执行sql时做了一些batch变更&#xff0c;出现了一个 crash问题&#xff0c;底层使用了apache arrow来实现。本节将会从0开始讲解如何调试STL源码crash问题&#xff0c;在这篇文章中以实际工作中resize导致crash为例&#xff0c;引出如何…

车载以太网AVB交换机 gptp透明时钟 8口 千兆/百兆可切换 SW1100TR

SW1100车载以太网交换机 一、产品简要分析 8端口千兆和百兆混合车载以太网交换机&#xff0c;其中包含2个通道的1000BASE-T1采用罗森博格H-MTD接口&#xff0c;5通道100BASE-T1泰科MATEnet接口和1个通道1000BASE-T标准以太网(RJ45接口)&#xff0c;可以实现车载以太网多通道交…

利用R语言和curl库实现网页爬虫的技术要点解析

R语言简介 R语言是一种自由、跨平台的编程语言和软件环境&#xff0c;专门用于统计计算和数据可视化。它具有丰富的数据处理、统计分析和图形展示功能&#xff0c;被广泛应用于数据科学、机器学习、统计建模等领域。 R语言技术优势 丰富的数据处理功能&#xff1a; R语言拥有…

入门指南|营销中人工智能生成内容的主要类型 [新数据、示例和技巧]

由于人工智能技术的进步&#xff0c;内容生成不再是一项令人头疼的任务。随着人工智能越来越多地接管手动内容制作任务&#xff0c;营销人员明智的做法是了解现有的不同类型的人工智能生成内容&#xff0c;以及哪些内容从中受益最多。这些工具可以帮助我们制作对您的受众和品牌…

RabbitMQ3.x之四_RabbitMQ角色说明及创建用户与授权

RabbitMQ3.x之四_角色说明及创建用户与授权 文章目录 RabbitMQ3.x之四_角色说明及创建用户与授权1. 访问和授权1. Tags说明2. 命令行示例 2. 管理界面新建用户及访问授权1. 管理界面新建用户2. 管理界面中的授权说明3. guest用户不能远程登录提示 3. 创建用户1. 基本命令2. 实际…