首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一种Parentheses匹配算法

一种Parentheses匹配算法
EN

Code Golf用户
提问于 2018-06-07 16:44:33
回答 14查看 2.7K关注 0票数 25

您将得到一个字符串s。保证字符串相等,并且至少有一个[s和]s,并且保证括号是平衡的。该字符串还可以有其他字符。

目标是输出/返回一个元组列表或包含每个[]对索引的列表。

注意:字符串是零索引的.

示例:!^45sdfd[hello world[[djfut]%%357]sr[jf]s][srtdg][]应该返回

[(8, 41), (20, 33), (21, 27), (36, 39), (42, 48), (49, 50)]或类似于此的东西。元组是不必要的。也可以使用列表。

测试用例:

代码语言:javascript
复制
input:[[asdf][][td([)ty54g% ]hg[[f]u][f[[jhg][gfd]sdf]sdfs]ghd]fr43f]
output:[(0, 62),(1, 6), (7, 8), (9, 56), (13, 22), (25, 30), (26, 28), (31, 52), (33, 47), (34, 38), (39, 43)]
input:[[][][][]][[][][][[[[(]]]]]))
output:[(0, 9), (1, 2), (3, 4), (5, 6), (7, 8), (10,26),(11, 12), (13, 14), (15, 16), (17, 25), (18, 24), (19, 23), (20, 22)]
input:[][][[]]
output:[(0, 1), (2, 3), (4, 7), (5, 6)]
input:[[[[[asd]as]sd]df]fgf][][]
output:[(0, 21), (1, 17), (2, 14), (3, 11), (4, 8), (22, 23), (24, 25)]
input:[]
output:[(0,1)]
input:[[(])]
output:[(0, 5), (1, 3)]

这是密码-高尔夫,所以每种编程语言的最短代码(以字节为单位)获胜。

EN

回答 14

Code Golf用户

发布于 2018-06-07 20:53:05

脑-Flak经典,108个字节

代码语言:javascript
复制
{((((((([][][]){}){}){}()){}){}{}[])()()){{}<>{}(<>)}{}((){[](<{}>)}{}){{}<>[({}<[{}]>)](<>)}{}<>(({}()))<>}

在网上试试!

将每个打开的[存储在正确的堆栈中,并在我们到达]时输出。

票数 13
EN

Code Golf用户

发布于 2018-06-07 17:19:52

Python 2,74字节

代码语言:javascript
复制
s=[];i=0
for c in input():
 if'['==c:s+=i,
 if']'==c:print s.pop(),i
 i+=1

在网上试试!

票数 12
EN

Code Golf用户

发布于 2018-06-07 18:50:02

Java 10,95字节

将输入字符串作为Unicode代码点的int[]的void。

代码语言:javascript
复制
s->{int r=0,w=0;for(var c:s){if(c==91)s[w++]=r;if(c==93)System.out.println(s[--w]+","+r);r++;}}

在网上试试

Ungolfed

代码语言:javascript
复制
s -> {
    int r = 0, w = 0;
    for (var c : s) {
        if (c == 91)
            s[w++] = r;
        if (c == 93)
            System.out.println(s[--w] + "," + r);
        r++;
    }
}

Acknowledgments

  • 感谢Jonathan将输入字符串用作堆栈的想法(这里)
票数 4
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/166457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档