काउंटर काउंटर


18

टाइपोग्राफी में, एक काउंटर एक पत्र का क्षेत्र है जो पूरी तरह से या आंशिक रूप से एक पत्र के रूप या प्रतीक द्वारा संलग्न है। एक बंद काउंटर एक ऐसा काउंटर है जो पूरी तरह से एक पत्र फॉर्म या प्रतीक द्वारा संलग्न है। आपको एक प्रोग्राम लिखना चाहिए जो इनपुट के रूप में एक स्ट्रिंग लेता है और पाठ में कुल काउंटरों की संख्या को प्रिंट करता है।

आपका सुझाव:

  • एक कमांड लाइन इनपुट हो सकता है, या एसटीडीआईएन से, लेकिन आपको इसे निर्दिष्ट करना होगा।

  • पूरी तरह से मुद्रण योग्य ASCII वर्णों से मिलकर बनेगा, जिसका अर्थ 32 और 126 समावेशी के बीच सभी ASCII मान होगा। इसमें रिक्त स्थान शामिल हैं। अधिक जानकारी।

अब, यह फोंट के बीच थोड़ा भिन्न होता है। उदाहरण के लिए, जिस फ़ॉन्ट को आप पढ़ रहे हैं, वह 'जी' को एक बंद काउंटर के रूप में मानता है, जबकि गूगल फ़ॉन्ट में दो बंद मतदाताओं के साथ 'जी' है। इसलिए कि यह कोई समस्या नहीं है, यहां प्रति वर्ण बंद काउंटरों की आधिकारिक संख्या है।

बंद काउंटरों के साथ सभी प्रतीक:

 !"'()*+,-./12357:;<=>?CEFGHIJKLMNSTUVWXYZ[\]^_`cfhijklmnrstuvwxyz{|}~

ध्यान दें कि इसमें स्थान शामिल है।

यहाँ सभी प्रतीक एक बंद काउंटर के साथ हैं:

#0469@ADOPQRabdegopq

और यहां 2 बंद काउंटरों के साथ सभी प्रतीक हैं:

$%&8B

और अंतिम लेकिन कम से कम नहीं, यहां कुछ नमूना इनपुट और आउटपुट हैं।

Programming Puzzles and Code-Golf छपना चाहिए 13

4 8 15 16 23 42 छपना चाहिए 5

All your base are belong to us छपना चाहिए 12

Standard loopholes apply छपना चाहिए 12

Shortest answer in bytes is the winner! छपना चाहिए 8


1
दो उत्तरों ने पूर्ण कार्यक्रमों के बजाय कार्य प्रस्तुत किए हैं। जबकि यह डिफ़ॉल्ट रूप से अनुमत है, आपके शब्दांकन से अन्यथा पता चलता है। क्या आप स्पष्ट कर सकते हैं?
डेनिस

क्या आप इस बात का खुलासा करेंगे कि आपने काउंटरों को गिनने के लिए कौन सा प्रयोग किया?
मार्टिन एंडर

3
आपके द्वारा दिए गए काउंट से संबंधित कोई भी फॉन्ट मैं प्रश्न नहीं देख रहा हूँ। जैसे ब्राउज़र में, शून्य में एक विकर्ण स्लैश होता है, जिससे दो काउंटर मिलते हैं। एंड्रॉइड ऐप में फ़ॉन्ट नहीं है, लेकिन यहां gदो बंद काउंटर हैं। क्या आपने किसी विशेष फ़ॉन्ट के आधार पर काउंटरों का निर्धारण किया था?
मार्टिन एंडर

1
@DJMcMayhem 'g' में 1 है; हालाँकि, जहाँ कोड में सूचीबद्ध है, g2. पढ़ने के लिए थोड़ा भ्रामक है, लेकिन मुझे नहीं लगता कि यह स्थान से भिन्न है।
OJFord

1
0कुछ फोंट में 2 बंद काउंटर नहीं हैं, विशेषकर कई मोनोस्पेस फोंट?
vsz

जवाबों:


10

पायथ, 31 बाइट्स

sm@tjC"cúÁ-ÈN%³rØ|­"3Cdz

प्रदर्शन।

ध्यान दें कि गैर-ASCII वर्णों के उपयोग के कारण कोड ठीक से प्रदर्शित नहीं हो सकता है। सही कोड लिंक पर है।

मैंने प्रत्येक इनपुट चरित्र के लिए वांछित आउटपुट का एक लुकअप टेबल बनाया, इसे पाइथ के मॉड्यूलर इंडेक्सिंग का उपयोग करने के लिए 32 से घुमाया, शुरुआत में 1 अटक गया, और इसे नंबर 3 के रूप में व्याख्या की, जिससे नंबर दिया गया 2229617581140564569750295263480330834137283757। मैंने तब इस संख्या को आधार 256 में बदल दिया और इसे एक स्ट्रिंग में बदल दिया, जो कि उत्तर में प्रयुक्त स्ट्रिंग है।


29

पायथन 3, 63

print(sum(map(input().count,"#0469@ADOPQRabdegopq$%&8B$%&8B")))

एक सीधा दृष्टिकोण। एक बंद काउंटर के साथ प्रत्येक वर्ण पर Iterates, घटनाओं की संख्या को सम्‍मिलित करता है, दो बंद काउंटरों वाले वर्णों के लिए दो बार ऐसा करता है। यह लिखने के बजाय एक ही लंबाई होगी

"#0469@ADOPQRabdegopq"+"$%&8B"*2

बचने के लिए अजगर 3 की जरूरत है raw_input


12

CJam, 41 39 37 34 बाइट्स

"$%&8Badopq#0469@Rbeg"_A<eu+qfe=1b

3 बाइट बंद करने के लिए @ jimmy23013 को धन्यवाद!

इसे ऑनलाइन आज़माएं।

यह काम किस प्रकार करता है

"$%&8Badopq#0469@Rbeg"             e# Push that string.
                      _A<          e# Retrieve the first 10 characters.
                         eu+       e# Convert to uppercase and append.
                                   e# This pushes "$%&8Badopq#0469@Rbeg$%&8BADOPQ".
                            q      e# Read from STDIN.
                             fe=   e# Count the occurrences of each character. 
                                1b e# Base 1 conversion (sum).

2
"$%&8Badopq#0469@Rbeg"_A<eu+
jimmy23013

@ jimmy23013: मैं के कुछ रूपों की कोशिश की थी euऔर elहै, लेकिन मैंने कभी नहीं पाया गया है कि। धन्यवाद!
डेनिस

8

पालक, ५१

@Manatwork और @TobySpeight से गोल्फ मदद के साथ:

s/[$%&8B]/oo/g
s/[^#0469@ADOPQRabdegopq]//g
s/./1/g

एसटीडीआईएन से इनपुट साथ इसे ध्यान में मेटा सवाल , उत्पादन एकल में है:

$ echo 'Programming Puzzles and Code-Golf
4 8 15 16 23 42
All your base are belong to us
Standard loopholes apply
Shortest answer in bytes is the winner!' | sed -f countercounter.sed
1111111111111
11111
111111111111
111111111111
11111111
$ 

7

पर्ल, 41

$_=y/#0469@ADOPQRabdegopq//+y/$%&8B//*2

41-pध्वज के लिए वर्ण +1 ।

यह वर्णों को गिनने के लिए y /// का उपयोग करता है ।

echo 'Programming Puzzles and Code-Golf' | perl -pe'$_=y/#0469@ADOPQRabdegopq//+y/$%&8B//*2'

6

जीएनयू एपीएल, 39 बाइट्स

+/⌈20÷⍨26-'$%&8B#0469@ADOPQRabdegopq'⍳⍞

इसे GNU APL.js में ऑनलाइन आज़माएं

यह काम किस प्रकार करता है

                                      ⍞ Read input.
          '$%&8B#0469@ADOPQRabdegopq'⍳  Compute the indexes of the input characters
                                        in this string. Indexes are 1-based.
                                        26 == 'not found'
       26-                              Subtract each index from 26.
   20÷⍨                                 Divide those differences by 20.
  ⌈                                     Round up to the nearest integer.
+/                                      Add the results.

6

जावास्क्रिप्ट, 86

मैं / ओ पॉपअप के माध्यम से। किसी में टुकड़ा भागो परीक्षण करने के लिए हाल ही में ब्राउज़र।

for(c of prompt(t=0))c='$%&8B#0469@ADOPQRabdegopq'.indexOf(c),~c?t+=1+(c<5):0;alert(t)


6

के, 54 43 42 37 बाइट्स

+//(30#"$%&8B#0469@ADOPQRabdegopq"=)'

@JohnE के लिए 5 बाइट्स कट ऑफ!

पुराना संस्करण:

f:+/(#&"#0469@ADOPQRabdegopq$%&8B$%&8B"=)'

मूल:

f:+/{2-(5="$%&8B"?x;20="#0469@ADOPQRabdegopq"?x;0)?0}'

#&कोष्ठक के अंदर बस के रूप में आसानी से किया जा सकता है +/, जिसका अर्थ है आप के साथ आगे जा सकते हैं +//"#0469@ADOPQRabdegopq$%&8B$%&8B"=\:। अंत में, यह आवश्यक नहीं है f:क्योंकि फ़ंक्शन को टैसिट रूप में उपयोग किया जा सकता है। यह आपको 38 तक ले जाएगा!
जॉनी

दुर्भाग्य से चाल कुछ अन्य समाधानों ने लुकअप टेबल को कॉम्पैक्ट करने के लिए नियोजित किया है, जो वर्तमान 38 बाइट समाधान के साथ मृत हो जाता है +//(30#"$%&8B#0469@ADOPQRabdegopq")=\::। यह सबसे अच्छा हम कर सकते हैं।
जॉनई

हाहा, नहीं जल्दी ही मैंने पोस्ट किया है कि मैंने एक चरित्र को बचाया:+//(30#"$%&8B#0469@ADOPQRabdegopq"=)'
जॉनी

5

सी, 127 बाइट्स

n;f(char*i){char*o="#0469@ADOPQRabdegopq",*t="$%&8B";for(;*i;i++)if(strchr(o,*i))n++;else if(strchr(t,*i))n+=2;printf("%d",n);}

बहुत सीधा। Ungolfed संस्करण:

int num = 0;
void f(char* input)
{
    char *one="#0469@ADOPQRabdegopq";
    char *two="$%&8B";

    for(;*input;input++)
        if(strchr(one, *input))     //If current character is found in first array
            num ++;
        else if(strchr(two, *input))//If cuurent character is found in second array
            num += 2;

    printf("%d", num);
}

इसका परीक्षण यहां करें

यदि फ़ंक्शन तर्क की अनुमति नहीं है, तो stdinसंस्करण को 141 ​​बाइट्स तक ले जाता है:

n;f(){char*o="#0469@ADOPQRabdegopq",*t="$%&8B",i[99],*p;gets(i);for(p=i;*p;p++)if(strchr(o,*p))n++;else if(strchr(t,*p))n+=2;printf("%d",n);}

ध्यान दें कि उपरोक्त संस्करण मानता है कि इनपुट अधिकतम 98 वर्ण लंबा है।

इसका परीक्षण यहां करें

कमांड लाइन तर्क संस्करण (143 बाइट्स):

n;main(c,v)char**v;{char*o="#0469@ADOPQRabdegopq",*t="$%&8B",*p=v[1];for(;*p;p++)if(strchr(o,*p))n++;else if(strchr(t,*p))n+=2;printf("%d",n);}

इसका परीक्षण यहां करें


1
@DJMcMayhem C वास्तव में उतना बुरा नहीं है। फोरट्रान 77 में गोल्फ का प्रयास करें;)
एलेक्स ए।

5

पायथन 2, 96 90 75 67 + 2 = 69 बाइट्स

यह करने के लिए किसी भी अन्य तरीके के बारे में सोच भी नहीं सकते ... क्या मैंने सोचा है कि जब तक मैं xnor का समाधान नहीं देखूंगा। मैं वैसे भी पोस्ट करूंगा।

6 बाइट बचाने के लिए FryAmTheEggman को धन्यवाद

ठीक है, अब मैं इससे खुश हूं।

4 बाइट की बचत, चाल के लिए xnor के लिए धन्यवाद।

दो बाइट्स जोड़े गए क्योंकि इनपुट को उद्धरणों में संलग्न करने की आवश्यकता है।

print sum('#0469@ADOPQRabdegopq$%&8B'.find(x)/20+1for x in input())

1
मुझे इंडेक्स का चतुर उपयोग पसंद है! इसके अलावा, पायथन 3 थोड़ा छोटा है क्योंकि यह कच्चे_पुट के बजाय इनपुट का उपयोग करता है।
DJMcMayhem


ओह मैं समझा। क्षमा करें, मैंने इसे @ DJMcMayhem के पायथन 3 टिप्पणी के साथ जोड़ा।
मैनटवर्क

4

जावा, 162

class C{public static void main(String[]a){System.out.print(-a[0].length()+a[0].replaceAll("[#0469@ADOPQRabdegopq]","..").replaceAll("[$%&8B]","...").length());}}

खैर, अगर यह है एक पूर्ण कार्यक्रम होने के लिए ... यह सिर्फ एक एक लाइनर है कि मैचों पात्रों और उन्हें एक लंबे समय तक तार के साथ बदल देता है। फिर, मूल से लंबाई में अंतर लौटाता है। दुर्भाग्य से, जावा वास्तव में मैचों की संख्या को गिनने के लिए कुछ भी नहीं है।

यहाँ यह लाइन ब्रेक के साथ है:

class C{
    public static void main(String[]a){
        System.out.print(
                -a[0].length() +
                a[0].replaceAll("[#0469@ADOPQRabdegopq]","..")
                .replaceAll("[$%&8B]","...")
                .length()
                        );
    }
}


4

जावास्क्रिप्ट, 114 95 बाइट्स

alert(prompt().replace(/[#046@ADOPQRabdegopq]/g,9).replace(/[$%&8B]/g,99).match‌​(/9/g).length)

मुझे इस गोल्फ में मदद करने के लिए इस्माइल मिगुएल का धन्यवाद।


2
93 बाइट्स:alert(prompt().replace(/[#046@ADOPQRabdegopq]/g,9).replace(/[$%&8B]/g,99).match(/9/g).length)
इस्माइल मिगुएल

बुरी तरह से गिनने के लिए क्षमा करें। हां, इसकी 95.
इस्माइल मिगुएल

3

रूबी, 59 बाइट्स

a=gets;p a.count('#0469@ADOPQRabdegopq')+2*a.count('$%&8B')

कमांड लाइन या स्टड से इनपुट। एक गैर-गूढ़ भाषा का उपयोग करते हुए अब तक का सबसे छोटा।

अपडेट: चिलमजिक ने मुझे हराया


3

रेटिना , 44 बाइट्स

1

[#0469@ADOPQRabdegopq]
1
[$%&8B]
11
[^1]
<empty line>

उत्पादन में एकता देता है।

प्रत्येक पंक्ति को अपनी फ़ाइल पर जाना चाहिए या आप इसका उपयोग कर सकते हैं -s ध्वज का । उदाहरण के लिए:

> echo "pp&cg"|retina -s counter
11111

लाइनों के जोड़े (पैटर्न - स्थानापन्न जोड़े) निम्नलिखित प्रतिस्थापन चरण करते हैं:

  • हटाना 1 की
  • 1-काउंटर अक्षरों के साथ प्रतिस्थापित करें 1
  • 2-काउंटर अक्षरों के साथ प्रतिस्थापित करें 11
  • निकालें सब कुछ है, लेकिन 1है

3

जे, ४३

एक समारोह के रूप में:

   f=:[:+/[:,30$'$%&8B#0469@ADOPQRabdegopq'=/]
   f 'text goes here'
6

46 बाइट्स (कमांड लाइन)

स्टैंडअलोन कमांड-लाइन प्रोग्राम के रूप में:

echo+/,30$'$%&8B#0469@ADOPQRabdegopq'=/>{:ARGV

उपरोक्त पंक्ति को इस रूप में सहेजें counter2.ijsऔर कमांड लाइन से कॉल करें:

$ jconsole counter2.ijs 'Programming Puzzles and Code Golf'
13

कोड में इनपुट को कॉपी-पेस्ट करने की अनुमति नहीं है लेकिन एक फ़ंक्शन जो इनपुट को तर्क के रूप में ले सकता है वह ठीक है। जैसे f=:your_function_code
रैंडम

2

जूलिया, 77 74 बाइट्स

t=readline();length(join(t∩"#0469@ADOPQRabdegopq")*join(t∩"\$%&8B")^2)

यह STDIN से पाठ को पढ़ता है और परिणाम को STDOUT में प्रिंट करता है।

असंगठित + स्पष्टीकरण:

# Read text from STDIN
t = readline()

# Print (implied) to STDOUT the length of the intersection of t with the
# 1-closed counter list joined with the duplicated intersection of t with
# the 2-closed counter list
length(join(t ∩ "#0469@ADOPQRabdegopq") * join(t ∩ "\$%&8B")^2)

उदाहरण:

julia> t=readline();length(join(t∩"#0469@ADOPQRabdegopq")*join(t∩"\$%&8B")^2)
Programming Puzzles and Code Golf
13

2

आरएस , 56 बाइट्स

_/
[#0469@ADOPQRabdegopq]/_
[$%&8B]/__
[^_]/
(_+)/(^^\1)

लाइव डेमो।


बस एक फ़िजी: मैंने rs के लिए एक स्टब एसोलॉन्ग्स पेज बनाया। आप इसे जोड़ना चाह सकते हैं: esolangs.org/wiki/Rs
mbomb007

@ mbomb007 वाह !! उसने मेरा दिन शानदार बना दिया। : D
kirbyfan64sos

ठीक है, "rs" Google या किसी भी चीज़ में नहीं आता है क्योंकि यह केवल दो अक्षर हैं। इस तरह, लोग इसे पा सकते हैं। :)
mbomb007

2

जीएनयू एपीएल, 37 वर्ण

+/,⍞∘.=30⍴'$%&8B#0469@ADOPQRabdegopq'

एक चरित्र वेक्टर का निर्माण करें जिसमें 2-काउंटर वर्ण दो बार (30 contains) हों

वेक्टर में प्रत्येक वर्ण के साथ प्रत्येक इनपुट चार की तुलना करें ()। =)

उठे हुए मैच (+ /)


1

जावास्क्रिप्ट 159 , 130 बाइट्स

function c(b){return b.split("").map(function(a){return-1!="$%&8B".indexOf(a)?2:-1!="#0469@ADOPQRabdegopq".indexOf(a)?1:0}).reduce(function(a,b){return a+b})};

unminified:

function c(b) {
    return b.split("").map(function(a) {
        return -1 != "$%&8B".indexOf(a) ? 2 : -1 != "#0469@ADOPQRabdegopq".indexOf(a) ? 1 : 0
    }).reduce(function(a, b) {
        return a + b
    })
};

@ Edc65 की मदद से:

function c(b){return b.split('').reduce(function(t,a){return t+(~"$%&8B".indexOf(a)?2:~"#0469@ADOPQRabdegopq".indexOf(a)?1:0)},0)}

2
के रूप में ~ -1 == 0, आप के ~x?बजाय लिख सकते हैं -1 != x?। उपयोग के उदाहरण के लिए मुझे उत्तर देखें।
edc65

2
function c(b){return b.split('').reduce(function(t,a){return t+(~"$%&8B".indexOf(a)?2:~"#0469@ADOPQRabdegopq".indexOf(a)?1:0)},0)}mapतब की जरूरत नहीं हैreduce
edc65

1

हास्केल, 117

a="#0469@ADOPQRabdegopq"
b="$%&8B"
c n[]=n
c n(x:s)
 |e a=f 1
 |e b=f 2
 |True=f 0
 where
 e y=x`elem`y
 f y=c(n+y)s

c एक फंक्शन है c :: Int -> String -> Int जो एक काउंटर और एक स्ट्रिंग लेता है और एक बार में स्ट्रिंग एक अक्षर से गुजरता है, अगर वर्तमान पत्र 1 बिंदु सरणी या 2 बिंदु सरणी का सदस्य है और वेतन वृद्धि के बाद बाकी स्ट्रिंग के लिए कॉल करता है उचित राशि का मुकाबला करें।

काउंटर के साथ कॉल = 0 में ghci:

ghci> c 0 "All your base are belong to us"
12

1

सी #, 157

void Main(string s){int v=0;v=s.ToCharArray().Count(c=>{return "#0469@ADOPQRabdegopq".Contains(c)||"$%&8B".Contains(c)?++v is int:false;});Console.Write(v);}

Ungolfed:

void Main(string s)
{
    int v = 0;

    v = s.ToCharArray()
    .Count(c => 
    {
        return "#0469@ADOPQRabdegopq".Contains(c) || "$%&8B".Contains(c) ? ++v is int:false;
    });

    Console.Write(v);
}

स्ट्रिंग को एक चार सरणी में परिवर्तित करना, फिर यह देखना कि क्या प्रत्येक चार्ट या तो काउंटर में है। यदि यह दूसरे में है, तो मेरे पास इसे फिर से काउंटर बढ़ाने के लिए है।


1

एर्लांग, 103 बाइट्स

यह एक पूर्ण कार्यक्रम है जो एस्क्रिप्ट का उपयोग करके चलता है। फ़ाइल की पहली पंक्ति रिक्त होनी चाहिए (1 बाइट को जोड़ते हुए)।

main([L])->io:write(c(L,"#0469@ADOPQRabdegopq")+2*c(L,"$%&8B")).
c(L,S)->length([X||X<-L,S--[X]/=S]).

नमूना रन:

$ escript closed.erl 'Shortest answer in bytes is the winner!'
8$

PPCG, c (L, "# 0469 @ ADOPQRabdegopq") + 2 * c (L, "$% और 8B") में आपका स्वागत है c (L, "# 0469 @ ADQQRabdegopq $% और 8B $% & 8B") 5 से अधिक है। बाइट्स :)।
काटनेंको

@Katyenko, सुझाव के लिए धन्यवाद। अफसोस कि यह कुछ इनपुट के लिए सही ढंग से काम नहीं करता है। "$% और 8B" 5 के लिए मायने रखता है, लेकिन 10. होना चाहिए। c / 2 फ़ंक्शन स्ट्रिंग के वर्णों को फ़िल्टर करके काम करता है जो कि वर्णों के सेट से संबंधित नहीं हैं, जैसे "$% और 8B"। यह सेट से परीक्षण किए जाने वाले चार को हटाकर सेट समावेशन की जांच करता है, फिर मूल सेट के साथ परिणाम की तुलना करता है। यदि वे समान नहीं हैं, तो चार सेट में था, और यह शामिल है। सेट में वर्णों की एकाधिक प्रतियों का कोई प्रभाव नहीं पड़ता है।
एडविन फाइन

हो, मैं देख रहा हूं, मैं नहीं जानता कि एर्लैंग, सोच रहा था कि आप काउंटर की गिनती करने के लिए एक स्ट्रिंग का उपयोग कर रहे थे: 3। वैसे भी, कभी नहीं, और अच्छी तरह से किया :)
Katenkyo

0

सी, 99 बाइट्स

n;f(char*i){for(char*o="#0469@ADOPQRabdegopq$%&8B",*t=o+20;*i;)n+=2-!strchr(o,*i)-!strchr(t,*i++);}

व्याख्या

मैंने आगे कूल गाइ का जवाब दिया ; यह टिप्पणी करने के लिए बहुत लंबा हो गया। if/ के बजाय else, मैंने इसका लाभ उठाया! एक संकेतक को बूल बदलने का । मैंने यह भी oशामिल किया tताकि मैं "को" में जोड़ सकूँ और कुल काउंटरों के लिए " oइन t" हो।

विस्तारित कोड

#include <string.h>
int num = 0;

void f(char* input)
{
    char *one = "#0469@ADOPQRabdegopq"  "$%&8B";
    char *two = strchr(one, '$');

    while (*input) {
        num += 2 - !strchr(one, *input) - !strchr(two, *input));
        ++input;
    }
}

आउटपुट है num, जिसे प्रत्येक कॉल से पहले साफ़ किया जाना चाहिए।

परीक्षण कार्यक्रम और परिणाम

#include <stdio.h>
int main() {
    const char* a[] = {
        "Programming Puzzles and Code-Golf",
        "4 8 15 16 23 42",
        "All your base are belong to us",
        "Standard loopholes apply",
        "Shortest answer in bytes is the winner!",
        NULL
    };
    for (const char** p = a;  *p;  ++p) {
        n=0;f(*p);
        printf("%3d: %s\n", n, *p);
    }
    return 0;
}
 13: Programming Puzzles and Code-Golf
  5: 4 8 15 16 23 42
 12: All your base are belong to us
 12: Standard loopholes apply
  8: Shortest answer in bytes is the winner!
 37: n;f(char*i){for(char*o="#0469@ADOPQRabdegopq$%&8B",*t=o+20;*i;)n+=2-!strchr(o,*i)-!strchr(t,*i++);}

कोड में स्वयं के मीट्रिक द्वारा 37 काउंटर होते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.