我试图找出给定的输入是否是有效的括号。输入字符串由 '(', ')', '{', '}', '[' 和 ']' 组成。
输入字符串在以下情况下有效:
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) 假设我想按如下方式解码 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)