ウェーブをしましょう!


29

入力:

  • lengthの文字列(wave-snippet)>= 2
  • 正の整数n >= 1

出力:

単一行の波を出力します。これを行うには、入力文字列をn回繰り返します。

チャレンジルール:

  • 入力文字列の最初と最後の文字が一致する場合、合計出力で1回だけ出力します(つまり^_^、長さ2はになりますが^_^_^、にはなりません^_^^_^)。
  • 入力文字列には空白/タブ/改行/などは含まれません。
  • ご使用の言語が非ASCII文字をサポートしていない場合は、問題ありません。ASCIIのみのウェーブ入力の課題に依然として準拠している限り。

一般的なルール:

  • これはであるため、バイト単位の最短回答が優先されます。
    コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。
  • 回答には標準の規則が適用されるため、STDIN / STDOUT、適切なパラメーターを持つ関数/メソッド、完全なプログラムを使用できます。あなたの電話。
  • デフォルトの抜け穴は禁止されています。
  • 可能であれば、コードのテストへのリンクを追加してください。
  • また、必要に応じて説明を追加してください。

テストケース:

_.~"(              length 12
_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(

'°º¤o,¸¸,o¤º°'     length 3
'°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°'

-__                length 1
-__

-__                length 8
-__-__-__-__-__-__-__-__

-__-               length 8
-__-__-__-__-__-__-__-__-

¯`·.¸¸.·´¯         length 24
¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯

**                 length 6
*******

String & length of your own choice (be creative!)

結果にスニペットを質問に追加するといいでしょう:)
Qwertiy

2
「正の整数n >= 1」は私にはちょっと楽観的なようです... :)
paolo

回答:



23

Python 3、32バイト

lambda s,n:s+s[s[0]==s[-1]:]*~-n

n文字列のコピーを連結し、最初の文字が最後の文字と一致する場合、最初の文字を除くすべてのコピーから最初の文字を削除します。


これは質問の「¯`・.¸¸。・´¯」文字列を適切に処理しませんか?私はそれを試して、ときs[0]s[-1]ではなく、最初と最後の文字よりも、最初と最後のバイトを参照するように見えます。編集:ああ、待って、それはPython 2対Python 3です。それはPython 3で正しく動作します。
hvd16年

15

05AB1E、13バイト

CP-1252エンコードを使用します。

D¬U¤XQi¦}I<×J

オンラインでお試しください!

説明

-___-そして3、例えば入力として使用されます。

D              # duplicate input string
               # STACK: "-___-", "-___-"
 ¬U¤X          # push copies of the first and last element of the string
               # STACK: "-___-", "-___-", "-", "-"
     Q         # compare for equality 
               # STACK: "-___-", "-___-", 1
      i¦}      # if true, remove the first char of the copy of the input string
               # STACK: "-___-", "___-" 
         I<    # push input number and decrease by 1
               # STACK: "-___-", "___-", 2
           ×   # repeat the top string this many times
               # STACK: "-___-", "___-___-"
            J  # join with input string
               # STACK: "-___-___-___-"
               # implicitly output

11

JavaScript(ES6)、47バイト

f=
(s,n)=>s+s.slice(s[0]==s.slice(-1)).repeat(n-1)
;
<div oninput=o.textContent=n.value&&f(s.value,n.value)><input id=s><input id=n type=number min=1><div id=o>


1
20kおめでとうございます!
アドナン

2
@Adnanありがとう!20002も対称的です。
ニール

1
この場合、カレーは可能ですか?私はやって意味s=>n=>...の代わりに(s,n)=>
ツヴァイ

8

Perl、29バイト

28バイトコードの+ 1 -p

数バイト削るのを手伝ってくれた@Dadaに感謝します!

s/^((.).*?)(\2?)$/$1x<>.$3/e

使用法

perl -pe 's/^((.).*?)(\2?)$/$1x<>.$3/e' <<< "'°º¤o,¸¸,o¤º°'
3"
'°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°'
perl -pe 's/^((.).*?)(\2?)$/$1x<>.$3/e' <<< '**
6'
*******

オンラインの例。


2
いいね を使用して(間接的に)3バイト節約できます<>代わりに$'をできます-0。そして、もう1バイトを獲得するs///e代わりに使用できます://;$_=
ダダ

@Dada nice ...私は元の試みを完全に台無しにし、それを単純化しすぎて、はるかに大きくしました...私はボード上であなたのコメントを取りましたが$、最後に合わせる必要がありそうですが、使用しない'ということは、3を追加して保存-pし、1に戻すためにファイルに保存する必要があることを意味します。
ドムヘイスティングス

1
ふふ。はい、確かにそれが必要です$以前持っていた改行代わりです。(申し訳ありませんが私のコメントはあまり詳しくありませんでした、急いでいた...)
ダダ

<>置換文字列で使用するアイデアが好きです。しかし、もしn:代わりに改行をスペースで区切られ、文字カウントは少し減少させることができるs/(.+?) (\d+)/$1x$2/e
うるさいossifrage

1
@DomHastingsああ、私の間違い。適切に質問を読んでいない:-)
うるさいossifrageを

6

Perl、23バイト

+1を含む -p

STDINの個別の行に入力文字列とそれに続く番号を指定します

wave.pl <<< "'°º¤o,¸¸,o¤º°'
3"

wave.pl

#!/usr/bin/perl -p
$_ x=<>;s/(.)\K
\1?//g

単語の最初の文字が正規表現の特殊文字でない場合、この22バイトバージョンも機能します。

#!/usr/bin/perl -p
$_ x=<>;/./;s/
$&?//g

きちんとした!/g修飾子を貼り付けたときに修飾子を忘れたと思う;
ダダ

@ダダおっと。修正
トンホスペル

5

MATL、19 17 14バイト

ttP=l):&)liX"h

これは、オンラインインタープリターのASCIIで機能し、MATLABを使用して実行される場合、UnicodeとASCIIの両方で機能します。

オンラインでお試しください!

説明

        % Implicitly grab the input as a string
        %   STACK:  {'abcdea'}
        %
tt      % Make two copies and push them to the stack
        %   STACK:  {'abcdea'    'abcdea'    'abcdea'}
        %
P       % Flip the second copy around
        %   STACK:  {'abcdea'    'abcdea'    'aedcba'}
        %
=       % Perform an element-wise comparison. Creates a boolean array
        %   STACK:  {'abcdea'    [1 0 0 0 1]}
        %
l)      % Get the first element. If the first and last char are the same this will be
        % TRUE (1), otherwise FALSE (0)
        %   STACK:  {'abcdea'    1 }
        %
:       % Create an array from [1...previous result]. If the first char was repeated,
        % this results in the scalar 1, otherwise it results in an empty array: []
        %   STACK: {'abcdea'    1 } 
        %
&)      % Break the string into pieces using this index. If there were repeated
        % characters, this pops off the first char, otherwise it pops off
        % an empty string
        %   STACK: {'a'    'bcdea'}
        %
li      % Push the number 1 and explicitly grab the second input argument
        %   STACK: {'a'    'bcdea'    1    3}
        %
X"      % Repeat the second string this many times
        %   STACK: {'a'    'bcdeabcdeabcdea'}
        %
h       % Horizontally concatenate the first char (in case of repeat) 
        % or empty string (if no repeat) with the repeated string
        %   STACK: {'abcdeabcdeabcdea'}
        %
        % Implicitly display the result


4

バッチ、117バイト

@set/ps=
@set t=%s%
@if %s:~0,1%==%s:~1% set t=%s:~1%
@for /l %%i in (2,1,%1)do @call set s=%%s%%%%t%%
@echo %s%

繰り返し回数をコマンドラインパラメーターとして受け取り、STDINから文字列を読み取ります。



3

Gema、41文字

* *=@subst{\? \$1=\?\; =;@repeat{$2;$1 }}

サンプル実行:

bash-4.3$ gema '* *=@subst{\? \$1=\?\; =;@repeat{$2;$1 }}' <<< '_.~"( 12'
_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(

bash-4.3$ gema '* *=@subst{\? \$1=\?\; =;@repeat{$2;$1 }}' <<< "'°º¤o,¸¸,o¤º°' 3"
'°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°'

bash-4.3$ gema '* *=@subst{\? \$1=\?\; =;@repeat{$2;$1 }}' <<< '** 6'
*******

3

PowerShell v2 +、48バイト

Param($s,$n)$s+$s.Substring($s[0]-eq$s[-1])*--$n

文字列全体を1回出力し、最初と最後の文字が一致するかどうかに応じて、n-1個の文字列または部分文字列のコピーが続きます。

この.Substring()メソッドは、文字列の最後に指定されたインデックスから出力するため、$s[0]-eq$s[-1]false(0)と評価された場合、文字列全体を取得します。そのステートメントがtrue(1)の場合、2番目の文字から始まる部分文字列を取得します。


ダンギット、私は数分で私を打ちました。同じ答えがありました($ sと$ nの代わりに$ aと$ bを使用)。
AdmBorkBork

3

VBA 119バイト

このゲームの新機能とvbaが最高バイ​​トで勝ちます:P

PS:VBAがJAVA HAHAの近くにいるとは信じられない

Function l(s,x)
l=s: s=IIf(Left(s,1)=Right(s,1),Mid(s,2,Len(s)),s)
z: x=x-1: If x>0 Then l=l & s: GoTo z:
End Function

説明:

+------------------------------------------------------------+-----------------------------------------------------------------------------------+
|                            code                            |                                     function                                      |
+------------------------------------------------------------+-----------------------------------------------------------------------------------+
| l=s                                                        | input string s is saved to base                                                   |
| s = IIf(Left(s, 1) = Right(s, 1), Right(s, Len(s) - 1), s) | checks whether 1 and last char is equal,                                          |
|                                                            | if yes removes the first char from s and that s will be used to for further joins |
| z:                                                         | z: is a label                                                                     |
| x = x - 1:                                                 | decreases looping round                                                           |
| If x > 0 Then l = l & s: GoTo z:                           | join strings until no more rounds to do                                           |
+------------------------------------------------------------+-----------------------------------------------------------------------------------+

3
PPCGへようこそ!私自身、QBasicプログラマーとして、短縮コードを入力または貼り付け(スペースを追加するオートフォーマッターを使用)して、実行を実行すると動作するため、ほとんどのスペース削除しても有効なVBAコードを保持できます。それはあなたのスコアをかなり改善するでしょう。:)
DLosc

3

CJam、16 15バイト

l]li*{(s@)@|@}*

オンラインで試す

説明:

l]li*            Create a list of n-times the input string.
{(s@)@|@}*       Fold this list by taking out the last character of the first 
                 argument and the first character of the second argument and 
                 replacing them by their unique set union.
                 e.g.: "aba" "aba" -> "ab" 'a"a"| "ba" -> "ab" "a" "ba"
                       "abc" "abc" -> "ab" 'c"a"| "bc" -> "ab" "ca" "bc

2
あなたの波入力が好きです。:)
ケビンクルーイッセン

3

K、12バイト

{,/[y#(,)x]}


/in action
{,/[y#(,)x]}["lollol";4]
"lollollollollollollollol"
{,/[y#(,)x]}["-_";10]
"-_-_-_-_-_-_-_-_-_-_"

/explanation (read function from right to left)
x is the string and y is the number of repetitions
(,)y    --enlist x so it becomes 1 value (rather than a list)
y#x     --take y many items of x
,/      --coalesce the list ,/[("-_";"-_")] --> "-_-_"

ありがとう


これはルール1 {,/y#,$[(*x)~*|x;-1;0]_x}に違反します。25バイトが最初/最後のマッチングを処理するためです。ルール1に違反している場合は{,/y#,x}、8を
獲得

2

PHP、72バイト

<?=($a=$argv[1]).str_repeat(substr($a,$a[0]==substr($a,-1)),$argv[2]-1);

PHP 7.1では、65バイトに削減できます。

<?=($a=$argv[1]).str_repeat(substr($a,$a[0]==$a[-1]),$argv[2]-1);

2

ピップ、18バイト

「入力にスペースがない」ルールを活用した正規表現ソリューション。標準入力から文字列を取得し、コマンドライン引数として数値を取得します。

(q.s)XaR`(.) \1?`B

オンラインでお試しください!

説明:

 q.s                Read from stdin and append a space
(   )Xa             String-multiply by first cmdline arg
       R            Replace
        `(.) \1?`     Regex: char followed by space followed by (optional) same char again
                 B    Callback function, short for {b}: return 1st capturing group

したがって、にa b変わりab、にa a変わりa、文字列の末尾のスペースが削除されます。次に、結果が自動印刷されます。


2

Haskell、59バイト

a%b=concat$replicate a b
a@(s:z)#n|s/=last z=n%a|1<2=s:n%z

ゴルフされていないバージョン:

-- Helper: Appends str to itself n times
n % str = concat (replicate n str)

-- Wave creating function
(x:xs) # n
 -- If start and end of wave differ, 
 | x /= last xs = n%(x:xs)
 | otherwise   = x:(n%xs)

2

ジャワ10、123の 111 109 107 102 100 79バイト

s->n->{var r=s;for(;n-->1;r+=s.matches("(.).*\\1")?s.substring(1):s);return r;}

オンラインでお試しください。

同じバイト数の代替(79バイト):

(s,n)->{for(var t=s.matches("(.).*\\1")?s.substring(1):s;n-->1;s+=t);return s;}

オンラインでお試しください。

もちろん、自分の質問に答えようとします。;)@ dpa97の
おかげで-5バイト。 Java 7から10に変換する-21バイト。

説明:

s->n->{                // Method with String and integer parameters and String return-type
  var r=s;             //  Result-String, starting at the input-String
  for(;n-->1;          //  Loop `n-1` times
    r+=s.matches("(.).*\\1")?
                       //   If the first and last characters are the same:
        s.substring(1) //    Append the result-String with the input-String, 
                       //    excluding the first character
       :               //   Else:
        s);            //    Append the result-String with the input-String
  return r;}           //  Return the result-String

1
s.replaceAll( "^。"、 "")の代わりにs.split( "^。")[1]が機能し、数バイト節約されます
-dpa97

@ dpa97ありがとう!編集しました。私はいつも利用することを忘れてい.splitます。
ケビンCruijssen

@ dpa97私はそれを考え直している(または私たちが)していると思う.. s.substring(1)2バイト短い。;)
ケビンクルーイッセン

@KevinCurijssenええ、それを見たはずです、良い発見。私は正規表現を使用するというアイデアにこだわったと思う
...-dpa97

1

Javascript ES6、49文字

(s,n)=>s.replace(/(.).*?(?=\1?$)/,m=>m.repeat(n))

テスト:

f=(s,n)=>s.replace(/(.).*?(?=\1?$)/,m=>m.repeat(n))
console.log(document.querySelector("pre").textContent.split(`
`).map(s=>s.split` `).every(([s,n,k])=>f(s,n)==k))
<pre>_.~"( 12 _.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(
'°º¤o,¸¸,o¤º°' 3 '°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°'
-__ 1 -__
-__ 8 -__-__-__-__-__-__-__-__
-__- 8 -__-__-__-__-__-__-__-__-
¯`·.¸¸.·´¯ 24 ¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯
** 6 *******</pre>


1

QBIC、65バイト

;:~left$$|(A,1)=right$$|(A,1)|A=left$$|(A,len(A)-1)][1,a|B=B+A]?B

QBICにLEFT $とRIGHT $を追加する必要があると思います...

説明:

;          make the first cmd line parameter into A$
:          make the second cmd line parameter into a (num)
~left..]   Drop the last char if equal to the first char
[1,a...]   FOR the given number of repetitions, concat A$ to B$ (starts out empty)
?B         print B$

1

C#、79バイト

(s,n)=>s+new string('x',n-1).Replace("x",s[0]==s[s.Length-1]?s.Substring(1):s);

文字列を繰り返す少し不条理な方法。目的の繰り返し長さの新しい文字列を作成し、各文字を繰り返し文字列に置き換えます。それ以外は、他の多くの戦略とほとんど同じように見えます。

/*Func<string, int, string> Lambda =*/ (s, n) =>
    s                                      // Start with s to include first char at start
    + new string('x', n - 1).Replace("x",  // Concatenate n-1 strings of...
        s[0] == s[s.Length - 1]            // if first/last char are the same
            ? s.Substring(1)               // then skip the first char for each concat
            : s                            // else concat whole string each time
    )
;

1
うーん、入力文字列にが含まれているとxどうなりますか?「入力文字列には空白/タブ/改行/などが含まれない」ため、おそらくそれをスペースに変更する方がよいでしょう。
ケビンCruijssen 16年

1
入力にが含まれていれば問題なく動作しますxxx...x最初に文字列を作成してxから、置換する必要がある文字列を最初から再評価することなく、それぞれを置換します。
ミルク

1

SpecBAS-68バイト

1 INPUT a$,n: l=LEN a$: ?IIF$(a$(1)<>a$(l),a$*n,a$( TO l-1)*n+a$(l))

inline- IFを使用して、最初と最後の文字が同じかどうかを確認します。そうでない場合は、文字列nを何回か出力します。それ以外の場合は、文字列をlength-1につなぎ合わせ、それを繰り返し、最後の文字を最後に配置します。

ASCII文字(またはSpecBAS IDEに組み込まれた文字)のみを受け入れることができます

ここに画像の説明を入力してください


1

APL、19バイト

{⍺,∊1↓⍵⍴⊂⍺↓⍨⊃⍺=⊃⌽⍺}

使用法:

      '^_^' {⍺,∊1↓⍵⍴⊂⍺↓⍨⊃⍺=⊃⌽⍺} 5
^_^_^_^_^_^

説明:

  • ⊃⍺=⊃⌽⍺:最初の文字が最後の文字と一致するかどうかを確認します
  • ⍺↓⍨:この場合、最初の文字をドロップします
  • :結果を囲む
  • ⍵⍴:複製する回数
  • 1↓:最初のものをドロップします(これはより短いです(⍵-1)⍴
  • :すべての単純な要素を取得する(ボクシングを元に戻す)
  • ⍺,:文字列全体の1つのインスタンスを先頭に追加します

1

ポストスクリプト、98バイト

exch/s exch def/l s length 1 sub def s 0 get s l get eq{/s s 0 l getinterval def}if{s print}repeat

...しかし、PSインタープリターにcommバッファーをフラッシュさせるために、「フラッシュ」を追加する必要があるかもしれません。


1

Common Lisp(LispWorks)、176バイト

(defun f(s pos)(if(equal(elt s 0)(elt s #1=(1-(length s))))(let((s1(subseq s 0 1))(s2(subseq s 0 #1#)))(dotimes(j pos)(format t s2))(format t s1))(dotimes(j pos)(format t s))))

使用法:

    CL-USER 130 > (f "_.~~\"(" 12)
    _.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(
    NIL

    CL-USER 131 > (f "'°o¤o,??,o¤o°'" 3)
    '°o¤o,??,o¤o°'°o¤o,??,o¤o°'°o¤o,??,o¤o°'
    NIL

    CL-USER 132 > (f "-__" 1)
    -__
    NIL

    CL-USER 133 > (f "-__" 8)
    -__-__-__-__-__-__-__-__
    NIL

    CL-USER 134 > (f "ˉ`·.??.·′ˉ" 24)
    ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ
    NIL

    CL-USER 135 > (f "**" 6)
    *******
    NIL

説明:

~~ =>   ~

\" =>   " 

ウンゴルフ:

    (defun f (s pos)
      (if (equal (elt s 0) (elt s (1- (length s))))
          (let ((s1 (subseq s 0 1)) (s2 (subseq s 0 (1- (length s)))))
            (dotimes (j pos)
              (format t s2))
            (format t s1))        
        (dotimes (i pos)
          (format t s))))

1

Vim、17バイト

これを行う簡単な方法は、最初と最後の文字が一致するかどうかを確認できる後方参照正規表現を使用することです。しかし、長い正規表現は長いです。私たちはそれを望んでいません。

lDg*p^v$?<C-P>$<CR>hd@aP

繰り返す波はバッファ内にあります。繰り返される数字はレジスターにあると想定しています"aqaNq設定する数字としてNを入力します)。アイデアは次のとおりです。

  • 最初と最後のバイトが一致する場合、最後の文字までをすべて削除します。
  • 最初と最後のバイト一致しない場合は、すべての文字を削除します。

次にP、削除されたテキストの@a時間。

  • lDg*:この操作では、エスケープする必要があるかどうか、または単語であるかどうかに関係なく、任意の最初の文字に一致する正規表現を作成します。(*適切にエスケープされた正規表現を作成するには十分\<\>ですが、のような単語文字である場合は不要なゴミを追加し_ます。)
  • p^:最後のステップは面倒でした。行の先頭の元の位置までクリーンアップします。
  • v$:ビジュアルモードでは$、デフォルトで行末の後に移動します。
  • ?<C-P>$<CR>hd:前の正規表現が行末に存在する場合、この検索はそれに移動します。それ以外の場合は、行末を超えてください。そこから左に移動すると、必要な(退屈な)削除が完了します。
  • @aP:繰り返し数をマクロとして実行し、引数として使用しますP

1

ルビー、38バイト

->s,n{s[0]==s[-1]?s[0..-2]*n+s[0]:s*n}

これは一目瞭然だと思います。s[0..-2]ブロックを表現するためのより簡潔な方法があるかどうかはまだ疑問に思っていますが、まだ見つかりません。


0

Java(117バイト)

String w(String a,int b){String c=a;for(;b>0;b--)c+=b+a.substring(a.charAt(a.length()-1)==a.charAt(0)?1:0);return c;}

1
こんにちは、PPCGへようこそ!うーん、私はすでに短いJava 7の回答をここに投稿しまし。あなたのものは私が以前持っていたものと同様のアプローチを使用しています。これと同じアプローチを使用して、ゴルフb>0;b--をすることができますb-->0;。また、なぜb+そこにあるのc+=b+a.substringですか?それでも、あなたがそれを独立して思いついたなら、それは素晴らしい最初の答えです。PPCGでの滞在をお楽しみください!:)また、Javaでのゴルフのヒントを読むのも面白いかもしれません。
ケビンCruijssen
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.