スタック交換の評判を計算する


13

バックグラウンド:

Stackexchangeサイトを閲覧しているときに、人々が自分の評判をどのように得るのか疑問に思うことがよくあります。私は自分の問題を解決するためにいつでもcodegolf SEに頼ることができることを知っているので、ここにあります:

人の評判を表す正の整数を受け入れるプログラムを作成します。報奨金は無視し、SEの担当者を獲得/失う唯一の方法であると言います(フルテーブルこちら)。

  • すべてのアカウントは1人の担当者で始まり、その下に行くことはできません
  • あなたの質問は支持されています= +5
  • あなたの答えは支持されています= +10
  • あなたの質問はdownvoted = -2
  • あなたの答えはdownvoted = -2
  • 答えをダウンボット= -1
  • あなたの答えは受け入れられます= +15
  • 回答を受け入れる= +2

プログラムは、そのユーザーのアカウントで発生したアクションの数を把握して、担当者に連絡する必要があります。このレベルの担当者に到達するには、アクションの最短数を把握する必要があります。例:

入力:11出力:1回答アップ投票

入力:93出力:6つの回答が受け入れられ、1つの回答が受け入れられます

これらの例で私が「質問への賛成票」と言うとき、それはその人の質問が賛成票を得たことを意味します。私が「答える」と言うとき、それは彼らが誰か他の人の答えを下げることを意味します。

ルール:

なので、これを実行できる最短のコードが優先されます。


8
特定の評判を獲得する方法は無限にあります。常に「答える」と「答える」を実装するだけで十分に道を見つけることができるので、スコアの変化のより広いサブセットを使用する推進力はありません。これはあなたが意図したものですか?
algorithmshark 14年

@algorithmsharkが編集されました。あなたはそこにあなたを取得するアクションの最小数を見つける必要があります
TheDoctor

"" "Stackexchangeサイトを閲覧しているときに、人々がどのように評判を得ているのか疑問に思うことがよくあります。" "vs" "" 「」。2番目の引用は、必ずしも最初の引用に対する正しい答えではありません。

1
@algorithmshark一般的に私はあなたのコメントに同意します。ただし、6つの回答が受け入れられ、1つの回答が6 * 15 + 2 = 92であり、93ではありません!私は7つのアクションでそれを行う方法を見ることができませんが、私は8でそれを行うことができます:6つの答えは受け入れ、1つの質問は賛成票、1つの質問は反対票:6 * 15 + 5-2 = 93。医師、「最小数のアクション」の可能性が複数ある場合、それらすべてを見つける必要がありますか、それとも1つだけを見つける必要がありますか?
レベル川セント

1
あなたは1人の担当者で始まる@steveverrill
TheDoctor

回答:


3

Golfscript、162 144バイト

{{}if}:?;~.)15/:^15*-:~3>1~8>' answer ':A' question 'if'upvote'++?^^A'accept'+:C+^1>{'s'+}??~5%:,4<,1>&1C'ed'++?,2%!1A'downvote'++,4<{'d'+}??]n*

使い方

一般的な考え方は、Bashの回答とまったく同じです。

{{}if}:?;         # Create an `if' statement with an empty `else' block.
                  #
~.)15/:^          # Interpret the input string, subtract 1 from its only element (the
                  # reputation score), divide by 15 and save the result in `^'. This gives
                  # the number of accepted answers.
                  #
15*-:~            # Multiply the number of accepted answer by 15 and subtract the product
                  # from the reputation score. Save the result in `~'.
                  #
3>                # If the result is greater than 3:
                  #
  1               # Push 1 on the stack.
                  #
  ~8>             # If the result is greater than 8:
                  #
    ' answer ':A  # Push `answer' on the stack. Either way, save the string in `A'.
                  #
    ' question '  # Otherwise, push `question' on the stack.
                  #
  if              #
                  #
  'upvote'++      # Push `upvote' on the stack and concatenate the three strings.
                  #
?                 #
                  #
^                 # If the number of accepted answers is positive:
                  #
  ^A'accept'+:C+  # Push the number, concatenated with the string ` answer accept', on the
                  # stack. Either way, the string in `C'.
                  #
  ^1>             # If the number of accepted answers is greater than 1:
                  #
    {'s'+}        # Cocatenate the previous string with `s', for proper pluralization.
                  #
  ?               #
                  #
?                 #
                  #
~5%:,             # Calculate the reputation score modulus 5. Save the result in `,'.
                  #
4<,1>&            # If the result is less than 4 and greater than 1:
                  #
  1C'ed'++        # Push the string `1 answer accepted' on the stack.
                  #
?                 #
                  #
,2%!              # If the result is odd:
                  #
  1A'downvote'++  # Push the string `1 answer downvote' on the stack.
                  #
  ,4<             # If the result is less than 4:
                  #
    {'d'+}        # Concatente the previous string with `d'.
                  #
  ?               #
                  #
?                 #
                  #
]n*               # Join the array formed by all strings on the stack, separating the
                  # strings by newlines. This is the output.

9

バッシュ、247の 202 192バイト

n=$1 bash <(sed 's/E/)echo /;s/C/ Aaccept/;s/A/answer /
s/.*)/((&)\&\&/'<<<'a=(n+1)/15,a-1)s=s;q=question
aE$aC$s
r=n%5,r-4)d=d&&
r>1E1Ced
1-r%2E1 Adownvote$d
n-=15*a,n>8)q=A
n>3E1 $q upvote')

使い方

のsedコマンドが仕事をして、次のbashスクリプトが実行されます:

((a=(n+1)/15,a-1))&&s=s;q=question
((a))&&echo $a answer accept$s
((r=n%5,r-4))&&d=d&&
((r>1))&&echo 1 answer accepted
((1-r%2))&&echo 1 answer downvote$d
((n-=15*a,n>8))&&q=answer 
((n>3))&&echo 1 $q upvote

最適なソリューション(nレピュテーションを取得するための最小イベント数a)を取得するには、16未満のレピュテーションに到達するために必要な受け入れられる回答()の数(1回答を受け入れる)を計算し、次のように剰余を処理するだけで十分です。

1  (no rep change)
2  answer accepted, answer downvoted
3  answer accepted
4  question upvote, answer downvote
5  question upvote, answer downvoted
6  question upvote
7  question upvote, answer accepted, answer downvoted
8  question upvote, answer accepted
9  answer upvote, answer downvote
10 answer upvote, answer downvoted
11 answer upvote
12 answer upvote, answer accepted, answer downvoted
13 answer upvote, answer accepted  
14 answer accept, answer downvote
15 answer accept, answer downvoted

2
説明のためのおかげで、それが対処するのは簡単ではありません-2し、-1downvotes。
AL

6

Perl、500 263 256 208バイト

スクリプトrep.pl

$_=1+pop;sub P($){print$=,@_,$/}$;=" answer ";$:="$;downvote";($==$_/15)&&P"$;accept"."s"x($=>1);$_%=15;$==1;P"$;upvote",$_-=10if$_>9;P" question upvote",$_-=5if$_>4;P"$;accepted"if$_>2;P$:."d"if$_%2;P$:if!$_

使用法

入力は、スクリプトへの引数として与えられる正の整数として期待されます。さまざまなアクションが行として出力されます。

テスト

perl rep.pl 11
1 answer upvote

perl rep.pl 93
6 answer accepts
1 answer accepted

perl rep.pl 1

perl rep.pl 4
1 question upvote
1 answer downvote

perl rep.pl 12
1 answer upvote
1 answer accepted
1 answer downvoted

perl rep.pl 19
1 answer accept
1 question upvote
1 answer downvote

perl rep.pl 34
2 answer accepts
1 question upvote
1 answer downvote

perl rep.pl 127
8 answer accepts
1 question upvote
1 answer accepted
1 answer downvoted

perl rep.pl 661266
44084 answer accepts
1 question upvote

非ゴルフ

$_ = pop() + 1; # read the reputation as argument,
                # remove the actionless start reputation
                # and add a bias of two to calculate
                # the answer accepts in one division.

# Actions
# -------
# answer accepts:      Your answer is accepted    = +15
# answer upvotes:       Your answer is upvoted     = +10
# question upvotes:     Your question is upvoted   = +5
# answers accepted:     You accept an answer       = +2
# answers downvoted:    You downvote an answer     = -1
# answer downvotes:     Your answer is downvoted   = -2
# (questions downvoted: Your question is downvoted = -2) not used

# Function P prints the number of actions in $= and
# the action type, given in the argument.
# The function is prototyped "($)" to omit the
# parentheses in the usage.
sub P ($) {
    print $=, @_, $/ # $/ is the line end "\n"
}
# abbreviations,
# special variable names to save a space if a letter follows
$; = " answer ";
$: = "$;downvote";

# Calculation and printing the result
# -----------------------------------
($= = $_ / 15) && # integer division because of the special variable $=
P "$;accept" .
  "s" x ($= > 1); # short for: ($= == 1 ? "" : "s")
$_ %= 15;
$= = 1;           # now the action count is always 1 if the action is used
P "$;upvote",         $_ -= 10 if $_ > 9;
P " question upvote", $_ -=  5 if $_ > 4;
P "$;accepted"                 if $_ > 2;
P $: . "d"                     if $_ % 2;
P $:                           if ! $_

古いバージョン

$_ = pop() + 1; # read the reputation as argument
                # subtract start reputation (1)
                # add bias (2)

# Actions
# -------
# $= answer accepts:      Your answer is accepted    = +15
# $b answer upvotes:      Your answer is upvoted     = +10
# $c question upvotes:    Your question is upvoted   = +5
# $d answers accepted:    You accept an answer       = +2
# $e answers downvoted:   You downvote an answer     = -1
# $f answer downvotes:    Your answer is downvoted   = -2
# -- questions downvoted: Your question is downvoted = -2

# Calculaton of answer accepts by a simple division that is
# possible because of the bias.
$= = $_ / 15; # integer division because of the special variable $=
$_ %= 15;

# The older version of the calculation can be simplified further, see below.
# Also the older version did not use the bias.
#
# function E optimizes the construct "$_ == <num>" to "E <num>"
# sub E {
#     $_ == pop
# }
#
# $d = $e = 1 if E 1;       #  1 =     +2 -1
# $d++ if E 2;              #  2 =     +2
#
# $c = $f = 1 if E 3;       #  3 =  +5 -2
# $c = $e = 1 if E 4;       #  4 =  +5 -1
# $c++ if E 5;              #  5 =  +5
# $c = $d = $e = 1 if E 6;  #  6 =  +5 +2 -1
# $c = $d = 1 if E 7;       #  7 =  +5 +2
#
# $b = $f = 1 if E 8;       #  8 = +10 -2
# $b = $e = 1 if E 9;       #  9 = +10 -1
# $b++ if E 10;             # 10 = +10
# $b = $d = $e = 1 if E 11; # 11 = +10 +2 -1
# $b = $d = 1 if E 12;      # 12 = +10 +2
#
# $=++, $f++ if E 13;       # 13 = +15 -2
# $=++, $e++ if E 14;       # 14 = +15 -1

$b++, $_ -= 10 if $_ > 9;
$c++, $_ -=  5 if $_ > 4;

# Now $_ is either 0 (-2), 1 (-1), 2 (0), 3 (1), or 4 (2).
# The number in parentheses is the remaining reputation change.

# The following four lines can be further optimized. 
# $f++        if ! $_;    # "! $_" is short for "$_ == 0"
# $e++        if $_ == 1;
# $d = $e = 1 if $_ == 3;
# $d++        if $_ == 4;

# Optimized version of the previous four lines:

$f++ if ! $_;
$e++ if $_ % 2;
$d++ if $_ > 2;

# function P optimizes the printing and takes the arguments for "print";
# the first argument is the action count and the printing is suppressed,
# if this action type is not needed.
sub P {
    print @_, $/ if $_[0]
    # $/ is "\n"
}

# some abbreviations to save some bytes
$; = " answer ";
$D = "$;downvote";

# output the actions

P $=, "$;accept", ($= == 1 ? "" : "s");
P $b, "$;upvote";
P $c, " question upvote";
P $d, "$;accepted";
P $e, $D, "d";
P $f, $D

編集

  • ケース4は修正されました。
  • これにより、ループなしで実行される計算が簡素化されます。
  • 到達不能な複数の「s」を削除、機能 S不要になりました。
  • 計算最適化、機能 E不要になりました。
  • 最適化された計算のためにバイアス2が追加されました。
  • いくつかのバイトを節約するために、ほとんどの変数を削除するための大規模な書き換え。

これによると、ジョンスキートは 44084答えは受け入れ&1つの答えupvoteている
TheDoctor

6
@TheDoctor:質問によると、これらは661266の評判を得るための最小限のアクションです。
Heiko Oberdiek 14年

4

R、454 421

r=as.integer(commandArgs(T)[1])-1;p=function(...){paste(...,sep='')};a='answer ';b='accept';e='ed';f='d';v='vote';d=p('down',v);u=p('up',v);q='question ';z=c();t=r%/%15;if(t>0){z=c(p(t,' ',a,b));r=r%%15;};if(r%in%(8:12))z=c(z,p(a,u));if(r%in%(3:7))z=c(z,p(q,u));if(r%in%c(1,2,6,7,11,12))z=c(z,p(a,b,e));if(r%in%(13:14))z=c(z,p(a,b));if(r%in%c(3,8,13))z=c(z,p(a,d));if(r%in%c(1,4,6,9,11,14))z=c(z,p(a,d,f));cat(z,sep=', ')

デニスの答えに感謝、私を大いに助けてくれました。

非ゴルフバージョン

# read input
r = as.integer(commandArgs(T)[1]) - 1

# shortcut to join strings (... will pass the parameter to paste() *as is*)
p = function(...) {paste(..., sep = '')}

# strings
a = 'answer '; b = 'accept'; e = 'ed'; f = 'd'
v = 'vote'; d = p('down',v); u = p('up',v)
q = 'question '

z = c()

# +15
t = r %/% 15;
if (t > 0) {
    z = c(p(t,' ',a,b))
    r = r %% 15
}

if (r %in% (8:12))              z = c(z,p(a,u));    # answer upvote
if (r %in% (3:7))               z = c(z,p(q,u));    # question upvote
if (r %in% c(1,2,6,7,11,12))    z = c(z,p(a,b,e));  # answer accepted
if (r %in% (13:14))             z = c(z,p(a,b));    # answer accept
if (r %in% c(3,8,13))           z = c(z,p(a,d));    # answer downvote
if (r %in% c(1,4,6,9,11,14))    z = c(z,p(a,d,f));  # answer downvoted

# print operations
cat(z,sep = ', ')

4

JavaScriptを- 270の 237 227 206 192文字

p=prompt,r=p()-1,a="1answer ",v="vote,";s=(r/15|0)+"answer accept,",r%=15;if(r>9)s+=a+"+"+v,r-=10;if(r>2)s+="1question +"+v,r-=5;r>0?s+=a+"accepted,":0;r<-1?s+=a+"-"+v:0;p(r&1?s+=a+"-voted":s)

Bash(ええ!)とまったく同じ数のcharsで、PythonとPerlを打ち負かします:)その後、評判が低下し、14その後、他の必要なアクションが完全にループ形式で実行されます。

編集1:\nsを,sに変換し、1つのifブロックを3進数に変換し、短い名前のフローリングを改善しました。

EDIT 2:ビッグのおかげAlconja私を助け削減11個の文字を。その後、さらに2つの文字を削減するために修正を加えました。


古いバージョン:

r=prompt()-1,a="1answer ",q="1question ",v="vote,";s=(c=r/15|0)+"answer accept,",r-=c*15;if(r>9)s+=a+"+"+v,r-=10;if(r>2)s+=q+"+"+v,r-=5;r>0?s+=a+"accepted,":0;if(r<-1)s+=a+"-"+v;r&1?s+=a+"-voted":0;alert(s)

テスト:

入力: 42
出力:

2answer accept,1answer +vote,1answer accepted,1answer -voted

/*I sincerely hope the output is clear and easy to make out*/

入力: 1337
出力:

89answer accept,1answer accepted,1answer -voted

未ゴルフコード:

// different version from the golfed code
rep = prompt() - 1
string = ""

function $(z, c, k){
  while(rep > 0 && rep >= z - 2) c += 1 , rep -= z;

  if(c) string += c + k + "\n"
}

a=" answer ", q=" question "

$(15, 0, a + "accept")
$(10, 0, a + "upvote")
$(5, 0, q + "upvote")
$(2, 0, a + "accepted")

function _(z, c, str){
  while(rep <= z) c += 1, rep -= z

  if(c) string += c + str + "\n";
}

_(-2, 0, a + "downvote");
_(-1, 0, a + "downvoted");

alert(string);

最初のFirefoxだけがなぜですか?
TheDoctor

1
@TheDoctorそれだけで、Firefoxで現在利用可能なJSの機能を利用- function name(args){}となりname=(args)=>{}、したがって、バイトの多くを保存します。
ゴーランタンドン14年

@TheDoctor私は自分のプログラムをクロスブラウザに更新しましたが、今では以前よりずっと短くなっています!
ゴーランタンドン14年

現在のバージョンはq1回しか使用しないため、インライン化できます。また、c変数をドロップして、のr%=15代わりにを実行することもできますr-=c*15。195文字(r=prompt()-1,a="1answer ",v="vote,";s=(r/15|0)+"answer accept,",r%=15;if(r>9)s+=a+"+"+v,r-=10;if(r>2)s+="1question +"+v,r-=5;r>0?s+=a+"accepted,":0;if(r<-1)s+=a+"-"+v;r&1?s+=a+"-voted":0;alert(s))になります。
アルコンジャ14

@Alconjaうわー!どうもありがとう!私はついにバッシュに非常に近いです!どうもありがとう!
ゴーランタンドン14

1

ゲームメーカー言語、276

p=real(keyboard_string())-1j="#"s=""z=" answer"w=" accept"x=" upvoted"+j;y=w+"ed"v=" question"u=" downvoted"if m=floor(p/15)s+=(m+z+y)+j;r=p-m*15if m=floor(r/10)s+=(m+z+x)r-=m*10if m=floor(r/5)s+=(m+v+x)r-=m*5n=floor(r/2)r-=n*2if m=r{n++;s+=(m+u+z)+j}s+=(n+y+z)show_message(s)

1

C#-391

少し長く、私はこれを徹底的に(まだ)テストしていません。:)

class R{void Main(string[] a){var r=int.Parse(a[0])-1;var a=new[]{15,10,5,2};var o=new List<string>();Func<int,string>y=z=>{var w="";if(z==15)w=" answer accepted";if(z==10)w=" answer upvotes";if(z==5)w=" question upvotes";if(z==2)w=" answer accepts";return w;};foreach(var x in a)if(r/x>0){o.Add(r/x+y(x));r-=(r/x)*x;}if(r==1)o.Add("1 question downvotes");Console.Write(string.Join(", ",o));

ゴルフ禁止-NEW

class R
{
    void Main(string[] a)
    {
        var r = int.Parse("122")-1; // subtracts 1 from total rep
        var a = new[] {15,10,5,2};
        var o = new List<string>();

        Func<int,string> y = 
            z => 
                {
                    var w="";
                    if(z==15) w=" answer accepted";
                    if(z==10) w=" answer upvotes";
                    if(z==5) w=" question upvotes";
                    if(z==2) w=" answer accepts";
                    return w;
                };

        foreach(var x in a) {
            if (r/x>0) {
                o.Add(r/x+y(x));
                r-=(r/x)*x;
            }
        }

        if(r==1)
            o.Add("1 question downvotes");

        Console.Write(string.Join(", ",o));
    }
}

ゴルフなし-旧(409)

class R
{
    void Main(string[] a)
    {
        var r = int.Parse(a[0])-1; // subtracts 1 from total rep
        var v = new[] {" question"," answer"," downvotes"," upvotes"," accepts"," accepted"};
        var o = new List<string>();

        // Starts from 15, then checks all the lower values.
        if (r/15>0) {
            o.Add(r/15+v[1]+v[5]);
            r-=(r/15)*15; // automatic rounding down due to int
        }
        if(r/10>0) {
            o.Add(r/10+v[1]+v[3]);
            r-=(r/10)*10;
        }
        if(r/5>0) {
            o.Add(r/5+v[0]+v[3]);
            r-=(r/5)*5;
        }
        if(r/2>0) {
            o.Add(r/2+v[1]+v[4]);
            r-=(r/2)*2;
        }
        if(r==1) {
            o.Add("1"+v[0]+v[2]);
        }
        Console.Write(string.Join(", ",o));
    }
}

テスト:

> prog.exe 120

7 answer accepted, 1 answer upvotes, 2 answer accepts 

1

Python- 213 207

p,k=__import__('itertools').combinations_with_replacement,int(input())
t,m,u=[5,10,-2,-1,15,2],[],iter(range(0,k))
while not m:m=list(filter(lambda v:k-1==sum(v),p(t,next(u))))
print(''.join(map(chr,m[0])))

長い関数名を呪ってください!

例:(末尾の改行を無視)

$ echo "93" | python per.py | hexdump -C
00000000  0f 0f 0f 0f 0f 0f 02 0a                           |........|

$ echo "11" | python per.py | hexdump -C
00000000  0a 0a                                             |..|

質問や回答の投票数などをどのように表示しますか?コードにはこれらの文字列が含まれていないため(他の回答を参照)、出力がルールに準拠していないと思います。
AL

それについての要件がなかったため、出力もゴルフされます。どちらも-2ポイントを与えるため、ダウン投票された質問/回答を個別に処理しません。印刷される結果のリストは、スコアを達成するための最短のシーケンスです。
レモンボーイ

はい、ルールはこの点に関する詳細には入りません。しかし、あなたは他の回答では、出力は標準であり、表示することを気づくことができるXの答えは受け入れY回答upvotesなどを、しかし、あなたが最短のコードを持っていないので、それは問題ではありません。
-AL

@LemonBoy 3つのインタープリターでこれを試しましたが、動作しません。すべてが言うEOF。動作するコンパイラ(および今後の参照用に保持する必要があるコンパイラ)を教えてください。
ゴーランタンドン

1
ため息@GaurangTandon、あなたはCoffeeScriptの通訳使ってPythonコードを実行しようとしている
LemonBoy

1

C ++、276(316 w /を含む)

#include <stdio.h>
#include <stdlib.h>
p(int&q,int*d){int r;char*s[]={"downvoted","accepted","question","answer","upvoted"};
if(r=(q&&q>=*d)){q-=(*d?*d:2);printf("%s %s\n",s[*(++d)],s[*(++d)]);}return r;}main(
int n,char**v){int q=atoi(v[1]);int d[]={-1,3,0,0,3,1,5,4,2,10,4,3,15,1,3};n=15;while
(p(q,d+n-3)||(n-=3));}

警告付きでGCCでコンパイルします。例:

$ ./a.out 0
$ ./a.out 1
accepted answer
downvoted answer
$ ./a.out 2
accepted answer
$ ./a.out 5
question upvoted
$ ./a.out 10
answer upvoted
$ ./a.out 15
answer accepted
$ ./a.out 16
answer accepted
accepted answer
downvoted answer
$ ./a.out 17
answer accepted
accepted answer

型宣言を必要としない言語にこれを自由に移植し、独自の言語として投稿してください。


1

JavaScript- 273 256 235

p=prompt(s=j="\n")-1;z=" answer",w=" accept",x=" upvoted"+j,y=w+"ed",v=" question",u=" downvoted";if(m=p/15|0)s+=m+z+y+j;r=p-m*15;if(m=r/10|0)s+=m+z+x;r-=m*10;if(m=r/5|0)s+=m+v+x;r-=m*5;n=r/2|0;if(m=r-=n*2)n++,s+=m+u+z+j;alert(s+n+y+z)

計算と出力を組み合わせて、さらに合計287までゴルフをしました。

編集:いくつかの変数を少し短くしました。

| 0アプローチのMath.Floorを削除しました。

初期化をprompt()パラメータに移動し、角かっこを削除し、最後に文字列を追加して警告しました。


codegolf.SEへようこそ!指示には、「正の整数を受け入れるプログラムを作成する」->を使用する必要がありprompt、値をハードコーディングすることはできません。
ゴーランタンドン14年

161にそれをバンプ心配ない、プロンプトを追加()、
マット

@GaurangTandonの賢いprompt()-1とアラート出力アプローチに従って、これをさらにダウンさせます。ハードコーディングされた文字列ストレージの一部も削減されました。
マット14年

1

Python3、188B

n=input()+1
a=n//15
n%=15
A='answer '
print("%d %saccepted\n%d %supvoted\n%d question upvoted\n%d accept %s\n%d downvote %s\n%d %sdownvoted"%(a,A,n//10,A,n%10//5,n%5>2,A,n%5%2,A,n%5==0,A))

使用法:python3 score.py <ret> 11 <ret>このスクリプトはscore.pyとして保存されます。

サンプル出力:

$ python score.py
5543
369 answer accepted
0 answer upvoted
1 question upvoted
1 accept answer 
0 downvote answer 
0 answer downvoted

承認済み=承認+ d、ダウン投票=ダウン投票+ d、アップ投票が繰り返されます。
ビル・ウッドガー14

はいしかし、これらの置換は、全体の任意の文字を保存していない-それを試してみて見る
アレクサンダー・ブレット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.