Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
class Solution { public String removeSubstring(String s, int k) { q3 res = new q3(); return res.solve(s, k); } } class q3 { public String solve(String s, int k) { ArrayDeque
deque = new ArrayDeque<>(); for (char c : s.toCharArray()) { if (!deque.isEmpty() && deque.peekLast().c == c) { deque.peekLast().cnt++; } else { deque.addLast(new Run(c, 1)); } while (deque.size() >= 2) { Run last = deque.pollLast(); Run pre = deque.peekLast(); if (last.c != ')' || last.cnt < k || pre.c != '(' || pre.cnt < k) { deque.addLast(last); break; } last.cnt -= k; if (last.cnt > 0) { deque.addLast(last); } deque.pollLast(); pre.cnt -= k; if (pre.cnt > 0) { deque.addLast(pre); } } } StringBuilder sb = new StringBuilder(); for (Run r : deque) { for (int i = 0; i < r.cnt; i++) { sb.append(r.c); } } // System.out.println("L="+k); // System.out.println("count="+sb.length()); return sb.toString(); } static class Run { char c; int cnt; Run(char cc, int ccnt) { c = cc; cnt = ccnt; } } }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)