[ https://issues.apache.org/jira/browse/GROOVY-11655?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
John updated GROOVY-11655: -------------------------- Description: for leetcode problem: [https://leetcode.com/problems/design-a-text-editor/description/] the java code below, suppose StringBuilder to be a contain of chars , meanwhile as a stack. {code:java} class TextEditor { private final StringBuilder left = new StringBuilder(); private final StringBuilder right = new StringBuilder(); public void addText(String text) { left.append(text); } public int deleteText(int k) { k = Math.min(k, left.length()); left.setLength(left.length() - k); return k; } public String cursorLeft(int k) { while (k > 0 && !left.isEmpty()) { right.append(left.charAt(left.length() - 1)); left.setLength(left.length() - 1); k--; } return text(); } public String cursorRight(int k) { while (k > 0 && !right.isEmpty()) { left.append(right.charAt(right.length() - 1)); right.setLength(right.length() - 1); k--; } return text(); } private String text() { return left.substring(Math.max(left.length() - 10, 0)); } } {code} was: for leetcode problem: https://leetcode.com/problems/design-a-text-editor/description/ the java code below: need StringBuilder to {{{color:#0077aa}class{color} {color:#dd4a68}TextEditor{color} {color:#999999}{{color}{color:#0077aa}private{color} {color:#0077aa}final{color} {color:#dd4a68}StringBuilder{color} left {color:#9a6e3a}={color} {color:#0077aa}new{color} {color:#dd4a68}StringBuilder{color}{color:#999999}({color}{color:#999999}){color}{color:#999999};{color}{color:#0077aa}private{color} {color:#0077aa}final{color} {color:#dd4a68}StringBuilder{color} right {color:#9a6e3a}={color} {color:#0077aa}new{color} {color:#dd4a68}StringBuilder{color}{color:#999999}({color}{color:#999999}){color}{color:#999999};{color}{color:#0077aa}public{color} {color:#0077aa}void{color} {color:#dd4a68}addText{color}{color:#999999}({color}{color:#dd4a68}String{color} text{color:#999999}){color} {color:#999999}{{color} left{color:#999999}.{color}{color:#dd4a68}append{color}{color:#999999}({color}text{color:#999999}){color}{color:#999999};{color}{color:#999999}}{color}{color:#0077aa}public{color} {color:#0077aa}int{color} {color:#dd4a68}deleteText{color}{color:#999999}({color}{color:#0077aa}int{color} k{color:#999999}){color} {color:#999999}{{color} k {color:#9a6e3a}={color} {color:#dd4a68}Math{color}{color:#999999}.{color}{color:#dd4a68}min{color}{color:#999999}({color}k{color:#999999},{color} left{color:#999999}.{color}{color:#dd4a68}length{color}{color:#999999}({color}{color:#999999}){color}{color:#999999}){color}{color:#999999};{color} left{color:#999999}.{color}{color:#dd4a68}setLength{color}{color:#999999}({color}left{color:#999999}.{color}{color:#dd4a68}length{color}{color:#999999}({color}{color:#999999}){color} {color:#9a6e3a}-{color} k{color:#999999}){color}{color:#999999};{color}{color:#0077aa}return{color} k{color:#999999};{color}{color:#999999}}{color}{color:#0077aa}public{color} {color:#dd4a68}String{color} {color:#dd4a68}cursorLeft{color}{color:#999999}({color}{color:#0077aa}int{color} k{color:#999999}){color} {color:#999999}{{color}{color:#0077aa}while{color} {color:#999999}({color}k {color:#9a6e3a}>{color} {color:#990055}0{color} {color:#9a6e3a}&&{color} {color:#9a6e3a}!{color}left{color:#999999}.{color}{color:#dd4a68}isEmpty{color}{color:#999999}({color}{color:#999999}){color}{color:#999999}){color} {color:#999999}{{color} right{color:#999999}.{color}{color:#dd4a68}append{color}{color:#999999}({color}left{color:#999999}.{color}{color:#dd4a68}charAt{color}{color:#999999}({color}left{color:#999999}.{color}{color:#dd4a68}length{color}{color:#999999}({color}{color:#999999}){color} {color:#9a6e3a}-{color} {color:#990055}1{color}{color:#999999}){color}{color:#999999}){color}{color:#999999};{color} left{color:#999999}.{color}{color:#dd4a68}setLength{color}{color:#999999}({color}left{color:#999999}.{color}{color:#dd4a68}length{color}{color:#999999}({color}{color:#999999}){color} {color:#9a6e3a}-{color} {color:#990055}1{color}{color:#999999}){color}{color:#999999};{color} k{color:#9a6e3a}--{color}{color:#999999};{color}{color:#999999}}{color}{color:#0077aa}return{color} {color:#dd4a68}text{color}{color:#999999}({color}{color:#999999}){color}{color:#999999};{color}{color:#999999}}{color}{color:#0077aa}public{color} {color:#dd4a68}String{color} {color:#dd4a68}cursorRight{color}{color:#999999}({color}{color:#0077aa}int{color} k{color:#999999}){color} {color:#999999}{{color}{color:#0077aa}while{color} {color:#999999}({color}k {color:#9a6e3a}>{color} {color:#990055}0{color} {color:#9a6e3a}&&{color} {color:#9a6e3a}!{color}right{color:#999999}.{color}{color:#dd4a68}isEmpty{color}{color:#999999}({color}{color:#999999}){color}{color:#999999}){color} {color:#999999}{{color} left{color:#999999}.{color}{color:#dd4a68}append{color}{color:#999999}({color}right{color:#999999}.{color}{color:#dd4a68}charAt{color}{color:#999999}({color}right{color:#999999}.{color}{color:#dd4a68}length{color}{color:#999999}({color}{color:#999999}){color} {color:#9a6e3a}-{color} {color:#990055}1{color}{color:#999999}){color}{color:#999999}){color}{color:#999999};{color} right{color:#999999}.{color}{color:#dd4a68}setLength{color}{color:#999999}({color}right{color:#999999}.{color}{color:#dd4a68}length{color}{color:#999999}({color}{color:#999999}){color} {color:#9a6e3a}-{color} {color:#990055}1{color}{color:#999999}){color}{color:#999999};{color} k{color:#9a6e3a}--{color}{color:#999999};{color}{color:#999999}}{color}{color:#0077aa}return{color} {color:#dd4a68}text{color}{color:#999999}({color}{color:#999999}){color}{color:#999999};{color}{color:#999999}}{color}{color:#0077aa}private{color} {color:#dd4a68}String{color} {color:#dd4a68}text{color}{color:#999999}({color}{color:#999999}){color} {color:#999999}{{color}{color:#0077aa}return{color} left{color:#999999}.{color}{color:#dd4a68}substring{color}{color:#999999}({color}{color:#dd4a68}Math{color}{color:#999999}.{color}{color:#dd4a68}max{color}{color:#999999}({color}left{color:#999999}.{color}{color:#dd4a68}length{color}{color:#999999}({color}{color:#999999}){color} {color:#9a6e3a}-{color} {color:#990055}10{color}{color:#999999},{color} {color:#990055}0{color}{color:#999999}){color}{color:#999999}){color}{color:#999999};{color}{color:#999999}}{color}{color:#999999}}{color}}} > Create extention method to make StringBuilder behaving like stack > ----------------------------------------------------------------- > > Key: GROOVY-11655 > URL: https://issues.apache.org/jira/browse/GROOVY-11655 > Project: Groovy > Issue Type: New Feature > Reporter: John > Priority: Major > > for leetcode problem: > [https://leetcode.com/problems/design-a-text-editor/description/] > the java code below, suppose StringBuilder to be a contain of chars , > meanwhile as a stack. > > {code:java} > class TextEditor { > private final StringBuilder left = new StringBuilder(); > private final StringBuilder right = new StringBuilder(); > public void addText(String text) { > left.append(text); > } > public int deleteText(int k) { > k = Math.min(k, left.length()); > left.setLength(left.length() - k); > return k; > } > public String cursorLeft(int k) { > while (k > 0 && !left.isEmpty()) { > right.append(left.charAt(left.length() - 1)); > left.setLength(left.length() - 1); > k--; > } > return text(); > } > public String cursorRight(int k) { > while (k > 0 && !right.isEmpty()) { > left.append(right.charAt(right.length() - 1)); > right.setLength(right.length() - 1); > k--; > } > return text(); > } > private String text() { > > return left.substring(Math.max(left.length() - 10, 0)); > } > } > {code} > > -- This message was sent by Atlassian Jira (v8.20.10#820010)