Codility---Nesting
2024-09-01 01:11:18
Task description
A string S consisting of N characters is called properly nested if:
- S is empty;
- S has the form "(U)" where U is a properly nested string;
- S has the form "VW" where V and W are properly nested strings.
For example, string "(()(())())" is properly nested but string "())" isn't.
Write a function:
class Solution { public int solution(String S); }
that, given a string S consisting of N characters, returns 1 if string S is properly nested and 0 otherwise.
For example, given S = "(()(())())", the function should return 1 and given S = "())", the function should return 0, as explained above.
Assume that:
- N is an integer within the range [0..1,000,000];
- string S consists only of the characters "(" and/or ")".
Complexity:
- expected worst-case time complexity is O(N);
- expected worst-case space complexity is O(1) (not counting the storage required for input arguments).
Solution
Programming language used: Java
Total time used: 23 minutes
Effective time used: 23 minutes
Code: 15:25:23 UTC, java, final, score: 100
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
import java.util.Stack;
class Solution {
public int solution(String S) {
// write your code in Java SE 8
Stack<Character> st = new Stack<Character>();
if(S == null)
return 1;
for(int i=0; i<S.length();i++){
if(S.charAt(i) == '(')
st.push('(');
else if(S.charAt(i) == ')' && !st.empty())
st.pop();
else if(S.charAt(i) == ')' && st.empty())
return 0;
}
if(st.empty())
return 1;
else
return 0;
}
}
https://codility.com/demo/results/trainingUYAFS5-NWU/
最新文章
- 用html5的canvas和JavaScript创建一个绘图程序
- 自动封装Servlet HttpServletRequest请求成为一个POJO对象
- Python 字典(Dictionary) setdefault()方法
- 面试常考的数据结构Java实现
- ul 、ol li 继承原有样式的问题
- 记录利用ettercap进行简单的arp欺骗和mitm攻击过程
- WCF Service端Inspector
- FilenameUtils工具类
- Scratch2.0例—接苹果
- Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)
- ItemsPanelTemplate的用法
- 20160217.CCPP体系详解(0027天)
- 互联网+ 何人能挡?带着你的Code飞奔吧!
- Python的一些高级特性以及反序列化漏洞
- [UE4]AttachToComponent的AttachmentRule
- H5 22-通配符选择器
- apt与apt-get命令的区别与解释
- CPU与IRP的一些相关函数
- kubernetes集群搭建(6):kubernetes基本使用演示
- Ubuntu14.04下安装MATLAB后,通过命令行打开其图形界面