[ 
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)

Reply via email to