Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #39312

Re: Writing Java code while drunk and stoned take 2

Newsgroups comp.lang.java.programmer
Date 2020-02-27 09:05 -0800
References <1747103f-c38a-411e-92de-a44a52d9c761@googlegroups.com>
Message-ID <4467fe7d-2c91-47c8-98ac-caa1df1d32b4@googlegroups.com> (permalink)
Subject Re: Writing Java code while drunk and stoned take 2
From Eric Douglas <e.d.programmer@gmail.com>

Show all headers | View raw


On Thursday, February 27, 2020 at 9:01:04 AM UTC-5, chad altenburg wrote:
> I was drunk and stoned because my girlfriend had just dump me. And I needed something to take my mind off the situation. So I attacked one problem that I couldn't solve on coding bat. Here is a link to the problem..
> 
> https://codingbat.com/prob/p180759
> 
> And here is the problem statement...
> 
> Look for patterns like "zip" and "zap" in the string -- length-3, starting with 'z' and ending with 'p'. Return a string where for all such words, the middle letter is gone, so "zipXzap" yields "zpXzp".
> 
> zipZap("zipXzap") → "zpXzp"
> zipZap("zopzop") → "zpzp"
> zipZap("zzzopzop") → "zzzpzp"
> 
> 
> But the solution that I somehow managed to come up with when I was drunk, stoned, depressed, and pissed off, is well, ugly...
> 
> Here is the solution
> 
> public String zipZap(String str) {
>   String newString = "";
>   
>   if (str.length() < 3) {
>     return str;
>   }
>   
>   for (int i = 0; i < str.length() - 3; i++) {
>     if (str.charAt(i) == 'z' && str.charAt(i + 2) == 'p' ) {
>       newString = newString +  "zp";
>       i = i + 2;
>     }
>     else {
>       newString = newString + str.charAt(i);
>     }
>     
>   }
>   
>   for (int i = str.length() - 3; i < str.length(); i++ ) {
>     if (str.charAt(i) == 'z' && str.charAt(i + 2) == 'p' ) {
>       newString = newString +  "zp";
>       i = i + 2;
>     }
>     else {
>       newString = newString + str.charAt(i);
>     }
>   }
>   
>   return newString;
> }
> 
> 
> The problem is that I have two loops. This is because I didn't know how to attack the case when I have to search for a pattern at the *end* of the string. If I use str.length(), I go out of bounds. So I ended up using a second loop to handle the end of the string case. 
> 
> My gut feeling says this isn't right. But I have no idea how this could be done in one loop.

I'm sure there's a few ways to solve it.  If execution time doesn't matter just look for the most readable.  Not sure why you're on that particular site, we're not here to do homework for you, but here's the simplest I could come up with.

    public String zipZap(String str) {
        String s1 = "";
        String s2 = "";
        String s3 = "";
        for (int n = 0; n < str.length(); n++) {
            s1 = str.substring(n, n+1);
            if (!s3.endsWith("z") || !s1.equals("p")) {
                s3 += s2;
            }
            s2 = s1;
        }
        return s3 + s2;
    }

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Writing Java code while drunk and stoned take 2 chad altenburg <cdalten@gmail.com> - 2020-02-27 06:00 -0800
  Re: Writing Java code while drunk and stoned take 2 nobody@example.org (Scott) - 2020-02-27 16:39 +0000
  Re: Writing Java code while drunk and stoned take 2 Eric Douglas <e.d.programmer@gmail.com> - 2020-02-27 09:05 -0800
  Re: Writing Java code while drunk and stoned take 2 Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2020-02-27 19:04 +0100
    Re: Writing Java code while drunk and stoned take 2 Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2020-02-27 19:05 +0100
    Re: Writing Java code while drunk and stoned take 2 Eric Douglas <e.d.programmer@gmail.com> - 2020-02-27 10:25 -0800
  Re: Writing Java code while drunk and stoned take 2 Arne Vajhøj <arne@vajhoej.dk> - 2020-02-27 18:41 -0500
    Re: Writing Java code while drunk and stoned take 2 Joerg Meier <joergmmeier@arcor.de> - 2020-03-01 22:50 +0100
      Re: Writing Java code while drunk and stoned take 2 Arne Vajhøj <arne@vajhoej.dk> - 2020-03-01 19:53 -0500
        Re: Writing Java code while drunk and stoned take 2 chad altenburg <cdalten@gmail.com> - 2020-03-03 04:54 -0800
          Re: Writing Java code while drunk and stoned take 2 Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2020-03-03 14:20 +0100
          Re: Writing Java code while drunk and stoned take 2 Joerg Meier <joergmmeier@arcor.de> - 2020-03-03 15:00 +0100
            Re: Writing Java code while drunk and stoned take 2 Eric Douglas <e.d.programmer@gmail.com> - 2020-03-03 08:19 -0800
              Re: Writing Java code while drunk and stoned take 2 chad altenburg <cdalten@gmail.com> - 2020-03-04 05:53 -0800
                Re: Writing Java code while drunk and stoned take 2 Eric Douglas <e.d.programmer@gmail.com> - 2020-03-04 09:59 -0800
                Re: Writing Java code while drunk and stoned take 2 chad altenburg <cdalten@gmail.com> - 2020-03-05 05:53 -0800
                Re: Writing Java code while drunk and stoned take 2 Eric Douglas <e.d.programmer@gmail.com> - 2020-03-05 09:29 -0800
                Re: Writing Java code while drunk and stoned take 2 "C.D. Altenburg, Ph.D," <cdalten@gmail.com> - 2020-03-06 05:49 -0800
                Re: Writing Java code while drunk and stoned take 2 Eric Douglas <e.d.programmer@gmail.com> - 2020-03-06 07:00 -0800
                Re: Writing Java code while drunk and stoned take 2 "C.D. Altenburg, Ph.D," <cdalten@gmail.com> - 2020-03-07 05:40 -0800
                Re: Writing Java code while drunk and stoned take 2 Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2020-03-06 17:47 +0100
                Re: Writing Java code while drunk and stoned take 2 "C.D. Altenburg, Ph.D," <cdalten@gmail.com> - 2020-03-07 05:42 -0800
                Re: Writing Java code while drunk and stoned take 2 Eric Douglas <e.d.programmer@gmail.com> - 2020-03-06 09:03 -0800
                Re: Writing Java code while drunk and stoned take 2 chad altenburg <cdalten@gmail.com> - 2020-03-05 07:22 -0800
                Re: Writing Java code while drunk and stoned take 2 Eric Douglas <e.d.programmer@gmail.com> - 2020-03-05 07:48 -0800
                Re: Writing Java code while drunk and stoned take 2 "C.D. Altenburg, Ph.D," <cdalten@gmail.com> - 2020-03-06 05:50 -0800
                Re: Writing Java code while drunk and stoned take 2 "C.D. Altenburg, Ph.D," <cdalten@gmail.com> - 2020-03-06 05:52 -0800

csiph-web