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/
 

最新文章

  1. 用html5的canvas和JavaScript创建一个绘图程序
  2. 自动封装Servlet HttpServletRequest请求成为一个POJO对象
  3. Python 字典(Dictionary) setdefault()方法
  4. 面试常考的数据结构Java实现
  5. ul 、ol li 继承原有样式的问题
  6. 记录利用ettercap进行简单的arp欺骗和mitm攻击过程
  7. WCF Service端Inspector
  8. FilenameUtils工具类
  9. Scratch2.0例—接苹果
  10. Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)
  11. ItemsPanelTemplate的用法
  12. 20160217.CCPP体系详解(0027天)
  13. 互联网+ 何人能挡?带着你的Code飞奔吧!
  14. Python的一些高级特性以及反序列化漏洞
  15. [UE4]AttachToComponent的AttachmentRule
  16. H5 22-通配符选择器
  17. apt与apt-get命令的区别与解释
  18. CPU与IRP的一些相关函数
  19. kubernetes集群搭建(6):kubernetes基本使用演示
  20. Ubuntu14.04下安装MATLAB后,通过命令行打开其图形界面

热门文章

  1. C++调用IDL程序的做法(一)
  2. 关于iis里面 .net framework 版本的切换
  3. 安德鲁斯Launcher得到的装在手机的应用程序列表
  4. 基于高德地图的描点操作,监听地图缩放,展示合理数量的marker
  5. 写在程序猿的困惑(特别Java程序猿)入行一年,感觉我不知道接下来该怎么办才能不断进步的,寻求翼
  6. youwuku和koudaitong以及weimeng差异
  7. matlab进行离散点的曲线拟合
  8. @RequestBody标记的形参,与APP接口不能直接用
  9. ubuntu 16.04快速安装ceph集群
  10. qt部分类释义