Das Programm sollte die Nummer, den Beginn des Bereichs und das Ende des Bereichs eingeben und ausgeben, wie viele ganze Zahlen die Nummer zwischen dem Beginn und dem Ende des Bereichs einschließlich enthält . Es sind sowohl Programme als auch Funktionen erlaubt.
Beispieleingaben
Beispielsweise:
//Input example 1
3,1,100
//Input example 2
3
1
100
//Input example 3
3 1 100
//Input example 4
a(3, 1, 100);
Alle obigen vier Eingabebeispiele sind gültig und alle bedeuten, dass dies 3
die fragliche Zahl 1
ist, der Beginn des Bereichs und 100
das Ende des Bereichs.
Und dann sollte das Programm ausgeben, wie oft 3
im Bereich von 1
bis 100
einschließlich erscheint . 3
in den ganzen Zahlen erscheint 3
, 13
, 23
, 30
, 31
, 32
, 33
, ..., 93
an insgesamt 19 mal. Das Programm sollte also 19
als Ausgabe ausgegeben werden, da dies die Häufigkeit des 3
Auftretens im Bereich von 1
bis ist 100
.
Regeln
- Es sind sowohl Programme als auch Funktionen erlaubt.
- Alle Zahlen werden ganze Zahlen sein, dass es Sinn werden nicht alle sein ,
float
s oder double
s.
- Hinweis: Die gesuchte Nummer wird immer im Bereich liegen
0≤x≤127
. Es wird keine Fälle geben, in denen es außerhalb dieses 0≤x≤127
Bereichs liegt.
- Wie im ersten Beispiel wird in diesem Fall
33
die Zahl 3
nur einmal gezählt , nicht zweimal.
- Die Werte für Anfang und Ende des Bereichs liegen zwischen
-65536
und 65535
einschließlich.
- Der Wert des Bereichsanfangs wird niemals das Bereichsende überschreiten oder diesem entsprechen.
start < end
- Auch das Sortiment ist inklusive. Wenn zum Beispiel die Eingabe war
8 8 10
, wäre der Bereich 8≤x≤10
und daher die Ausgabe 1.
- Die Eingabe kann auf eine der in den Beispielen gezeigten Arten erfolgen. Die Eingabe kann nach Belieben als Zeichenfolge oder als Zahl erfolgen.
Testfälle
3 1 100
19
3 3 93
19
12,-200,200
24 //This is because 12 appears in -129, -128, ..., -112, -12, 12, 112, 120, 121, 122, ...
123,1,3
0 //This is because all of 123's digits have to appear in the same order
3 33 34
2 //Because 3 appears in 2 numbers: 33 and 34
a(0,-1,1);
1
$ java NotVerbose 127 -12 27
0
Snack Snippet
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
# Language Name, N bytes
Wo N
ist die Größe Ihres Beitrags? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Wenn Sie mehrere Zahlen in Ihre Kopfzeile aufnehmen möchten (z. B. weil Ihre Punktzahl die Summe von zwei Dateien ist oder wenn Sie die Strafen für Interpreter-Flags separat auflisten möchten), stellen Sie sicher, dass die tatsächliche Punktzahl die letzte Zahl in der Kopfzeile ist:
# Perl, 43 + 2 (-p flag) = 45 bytes
Sie können den Namen der Sprache auch als Link festlegen, der dann im Leaderboard-Snippet angezeigt wird:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
/* Configuration */
var QUESTION_ID = 98470; // Obtain this from the url
// It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 41805; // This should be the user ID of the challenge author.
/* App */
var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page;
function answersUrl(index) {
return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER;
}
function commentUrl(index, answers) {
return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER;
}
function getAnswers() {
jQuery.ajax({
url: answersUrl(answer_page++),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
answers.push.apply(answers, data.items);
answers_hash = [];
answer_ids = [];
data.items.forEach(function(a) {
a.comments = [];
var id = +a.share_link.match(/\d+/);
answer_ids.push(id);
answers_hash[id] = a;
});
if (!data.has_more) more_answers = false;
comment_page = 1;
getComments();
}
});
}
function getComments() {
jQuery.ajax({
url: commentUrl(comment_page++, answer_ids),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
data.items.forEach(function(c) {
if (c.owner.user_id === OVERRIDE_USER)
answers_hash[c.post_id].comments.push(c);
});
if (data.has_more) getComments();
else if (more_answers) getAnswers();
else process();
}
});
}
getAnswers();
var SCORE_REG = /<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;
var OVERRIDE_REG = /^Override\s*header:\s*/i;
function getAuthorName(a) {
return a.owner.display_name;
}
function process() {
var valid = [];
answers.forEach(function(a) {
var body = a.body;
a.comments.forEach(function(c) {
if(OVERRIDE_REG.test(c.body))
body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>';
});
var match = body.match(SCORE_REG);
if (match)
valid.push({
user: getAuthorName(a),
size: +match[2],
language: match[1],
link: a.share_link,
});
});
valid.sort(function (a, b) {
var aB = a.size,
bB = b.size;
return aB - bB
});
var languages = {};
var place = 1;
var lastSize = null;
var lastPlace = 1;
valid.forEach(function (a) {
if (a.size != lastSize)
lastPlace = place;
lastSize = a.size;
++place;
var answer = jQuery("#answer-template").html();
answer = answer.replace("{{PLACE}}", lastPlace + ".")
.replace("{{NAME}}", a.user)
.replace("{{LANGUAGE}}", a.language)
.replace("{{SIZE}}", a.size)
.replace("{{LINK}}", a.link);
answer = jQuery(answer);
jQuery("#answers").append(answer);
var lang = a.language;
if (/<a/.test(lang)) lang = jQuery(lang).text();
languages[lang] = languages[lang] || {lang: a.language, user: a.user, size: a.size, link: a.link};
});
var langs = [];
for (var lang in languages)
if (languages.hasOwnProperty(lang))
langs.push(languages[lang]);
langs.sort(function (a, b) {
if (a.lang > b.lang) return 1;
if (a.lang < b.lang) return -1;
return 0;
});
for (var i = 0; i < langs.length; ++i)
{
var language = jQuery("#language-template").html();
var lang = langs[i];
language = language.replace("{{LANGUAGE}}", lang.lang)
.replace("{{NAME}}", lang.user)
.replace("{{SIZE}}", lang.size)
.replace("{{LINK}}", lang.link);
language = jQuery(language);
jQuery("#languages").append(language);
}
}
body { text-align: left !important}
#answer-list {
padding: 10px;
width: 290px;
float: left;
}
#language-list {
padding: 10px;
width: 290px;
float: left;
}
table thead {
font-weight: bold;
}
table td {
padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b">
<div id="answer-list">
<h2>Leaderboard</h2>
<table class="answer-list">
<thead>
<tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr>
</thead>
<tbody id="answers">
</tbody>
</table>
</div>
<div id="language-list">
<h2>Winners by Language</h2>
<table class="language-list">
<thead>
<tr><td>Language</td><td>User</td><td>Score</td></tr>
</thead>
<tbody id="languages">
</tbody>
</table>
</div>
<table style="display: none">
<tbody id="answer-template">
<tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
</tbody>
</table>
<table style="display: none">
<tbody id="language-template">
<tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
</tbody>
</table>
{a,b,c->}
Aww ... verdammt, ich habe verloren, bevor ich wieder angefangen habe.Ÿʒ³å}g
Bash, 20 Bytes
die offensichtliche Antwort
Beispiel
quelle
Perl, 20 Bytes
2 Bytes gespart durch Verwendung von
grep
as in @ ardnews Antwort .Bytecount enthält 18 Byte Code und
-ap
Flags.Geben Sie die 3 Zahlen in drei separaten Zeilen an:
quelle
Python 2,
4743 BytesRelativ einfach, mit der
repr
Kurzform von Python 2 .Ausgang:
quelle
-~a
stattdessen benutzena+1
?JavaScript (ES6),
46-45Byte(Meine beste nichtrekursive Version war 61 Byte.) Bearbeiten: 1 Byte dank @ edc65 gespeichert.
quelle
!!match
stattincludes
.Gelee , 7 Bytes
TryItOnline!
Eingabe: Start, Ende, ToFind
Wie?
Die Standardumwandlung einer Ganzzahl in eine für die Prüfung der Existenz der Unterliste iterierbare Zahl wandelt sich in eine Dezimalliste (keine Zeichenliste). Negative Zahlen haben also einen führenden negativen Wert (z. B.
-122
->, von[-1,2,2]
dem keine Unterliste gefunden wird[1,2]
) Der absolute Wert scheint zunächst die golferischste Lösung zu sein.quelle
PowerShell v2 +,
646256 Bytes-6 bytes dank mazzy
Eingabe über Kommandozeilenargumente der Formnummer lower_bound upper_bound . Ein bisschen doof in der Notation, weil die Semikolons darin
for
Fehler beim Parsen verursachen, wenn sie nicht$(...)
zum Erstellen eines Skriptblocks eingeschlossen sind. Wir durchlaufen im Grunde genommen eine Schleife nach oben,$a
bis wir treffen$b
, wobei wirWhere-Object
(die|?{...}
) verwenden, um die Zahlen herauszuziehen,-match
gegen die sich der reguläre Ausdruck richtet$c
. Das ist in Parens gekapselt, wir nehmen das.count
davon und das bleibt in der Pipeline und die Ausgabe ist implizit.Wenn wir jedoch garantieren, dass der Bereich nicht mehr als 50.000 Elemente umfasst, können wir die Schleife überspringen und einfach den Bereichsoperator
..
direkt für4543 Byte verwenden . Da dies jedoch nicht in den Herausforderungsspezifikationen enthalten ist, ist dies nicht gültig. Schade.quelle
param($c,$a,$b)$(for(;$a-le$b){1|?{$a++-match$c}}).count
param($c,$a,$b)($a..$b|?{$_-match$c}).count
Arbeiten mit Bereich -65536..65535 aufPowershell 5.1
Vim,
46, 41 BytesDie Eingabe erfolgt in folgendem Format:
quelle
Haskell, 65 Bytes
Das
import
ruiniert die Partitur. Anwendungsbeispiel:((-200)#200)12
->24
.quelle
Java 7 85 Bytes
quelle
Swift 3,
9693 BytesBearbeiten 1:
3 Bytes mit Hilfe von Kurzparametern gespeichert
quelle
Scala, 50 Bytes
nimmt den ersten eingang curried; nenne es so:
f("12")(-200,200)
Erklärung:
quelle
R, 32 Bytes
Recht einfach:
quelle
a=scan();sum(grepl(a,a[2]:a[3]))
oder als Argumente für eine Funktion :,function(a,b,c)sum(grepl(a,b:c))
beides entspricht in diesem Fall.C #, 71 Bytes
Schlagen Sie meine Java-Antwort dank Lambdas
quelle
(n,s,e)=>s>e?0:((""+s).Contains(n+"")?1:0)+f(n,++s,e);
ist viel kürzerRuby 44 Bytes
Testfälle:
quelle
PHP, 62 Bytes
Ziemlich direkter Ansatz:
Probieren Sie es online aus
quelle
<?=count(preg_grep("/$argv[1]/",range($argv[2],$argv[3])));
C
143135 BytesVielen Dank an @Kritixi Lithos für die Unterstützung beim Speichern von 8 Bytes
Sicherlich kann das besser gemacht werden, aber es ist das Beste, was ich bisher habe. C geht nicht sehr elegant mit Strings um, daher sind natürlich einige Operationen erforderlich.
Ungolfed + Programm
quelle
int i=l
aus der for-Schleife entfernen und es stattdessen mitint t=0
dergleichen initialisierenint t=0,i=l
, um ein paar Bytes zu sparen.b[9],n[9],t;C(N,l,h){for(t=!sprintf(n,"%d",N);l<=h;strstr(b,n)&&++t)sprintf(b,"%d",l++);N=t;}
JavaScript,
4645 BytesRekursiv zählen bis Start> Ende
Bearbeiten: Wechseln Sie zum RegExp-Test, um ein Byte zu speichern
quelle
PHP,
6863 Bytesverwenden wie:
bearbeiten: 5 Bytes dank Titus gespeichert
quelle
strstr($a[2]++,$a[1])>""
stattstrpos($a[2]++,$a[1])!==false
spart 5 Bytes.Powershell, 48 Bytes
Nach der Regel kann der Bereich mehr als 50.000 Elemente enthalten. Daher können wir den Bereichsoperator nicht
..
direkt verwenden. Vielen Dank AdmBorkBork .Einfach:
Testskript:
Ausgabe:
quelle
Japt ,
148 BytesNimmt die zu findende Ganzzahl als letzten Eingabewert.
Probieren Sie es online aus
Erläuterung
quelle
33
, the number3
will be counted as appearing only once, not twice." Your occurrence-count forW
would count the3
twice.Java,
928971 bytesNow with lambdas!
Old 89 byte function solution:
Hooray for the super increment function!
quelle
int i=l
from the for-loop and instead declare it witha
likeint a=0,i=l;
to save few bytesGolfSharp (non competing), 41 bytes
competing 45 bytes
quelle
I
function to convert the element to a string first before checking if it contains it.Groovy, 48 bytes
quelle
Racket 91 bytes
Ungolfed:
Testing:
Output:
quelle
Axiom bytes 90
results
quelle
Mathematica, 70 bytes
input
output
quelle
Clojure, 65 bytes
quelle
PHP, 56 Bytes
run as pipe Try it online
Input
Code
Explanation
quelle
Perl 6, 32 bytes
Try it online!
quelle