小编men*_*sai的帖子

检查java中括号的有效性

我试图找出给定的输入是否是有效的括号。输入字符串由 '(', ')', '{', '}', '[' 和 ']' 组成。
输入字符串在以下情况下有效:

1.左括号必须由相同类型的括号封闭。
2.左括号必须按正确的顺序闭合。3. 空字符串有效

但是,我下面使用递归的代码不适用于有效的情况。它应该转到基本情况(当输入为“”时),但转到 for 循环之后的 return 语句。

class Solution {

    public boolean validParen(String input) {

        if(input.isEmpty()) {
            return true;
        }

        else {
            for (int i = 0; i < input.length() - 1; i++) {
                if ((input.charAt(i) == '(' && input.charAt(i + 1) == ')') ||
                        (input.charAt(i) == '{' && input.charAt(i + 1) == '}') ||
                        (input.charAt(i) == '[' && input.charAt(i + 1) == ']')) {
                    input = input.substring(0, i) …
Run Code Online (Sandbox Code Playgroud)

java algorithm math recursion parentheses

2
推荐指数
1
解决办法
2万
查看次数

何时在 Decodable(Swift) 中使用 CodingKeys

假设我想按如下方式解码 Person 结构。

struct Person: Decodable {

let firstName: String
let lastName: String
let age: Int: String
}
Run Code Online (Sandbox Code Playgroud)

据我所知,数据只能用上面的方法解码。因此,如果我不将属性更改为自定义名称,如果上面和下面的实现没有区别?

此外,还有其他情况需要使用 CodingKeys 吗?除了重命名目的之外,当它们是必要的时,我很困惑。

struct Person: Decodable {

let firstName: String
let lastName: String
let age: Int: String
}

enum CodingKeys: String, CodingKey {
        
        case firstName
        case lastName
        case age
}

Run Code Online (Sandbox Code Playgroud)

swift codable decodable

2
推荐指数
2
解决办法
1万
查看次数

标签 统计

algorithm ×1

codable ×1

decodable ×1

java ×1

math ×1

parentheses ×1

recursion ×1

swift ×1