Code zu sagen, ob ein string ist ein Pangram oder nicht?

import java.io.*;
import java.util.*;


public class Solution {

    public static final int n = 26; 

    public int check(String arr) {
        if (arr.length() < n) {
           return -1;
        }
        for (char c = 'A'; c <= 'Z'; c++) {
            if ((arr.indexOf(c) < 0) && (arr.indexOf((char)(c + 32)) < 0)) {
               return -1;
            }
        }
        return 1;
    }  
}

public static void main(String[] args) {
    Scanner s1 = new Scanner(System.in);
    String s = s1.next();
    Solution obj = new Solution();

    int d = obj.check(s);

    if (d == -1) {
        System.out.print("not pangram");
    } else {
        System.out.print("pangram");
    }
}

Wenn die Zeichenfolge eingetragen ist:

Wir zeitnah beurteilt Antike Elfenbein-Schnallen für den nächsten Preis

Wird es geben, die falsch Ausgabe:

nicht pangram.

Ich bin nicht in der Lage, um herauszufinden, was falsch mit dem code.

Vielen Dank im Voraus!

  • Lassen Sie den code Debuggen, warum die check-Methode -1 zurück? Sie kehrte -1 auf mehreren stellen. Als Sie Ihre Antwort.
  • der erste return ist, wenn die Länge meiner Strings ist weniger als 26 Zeichen lang sein .. so kann es nicht sein, pangram, wenn die Länge ist mehr, dann geht es auf und überprüfen Sie, ob alle Alphabete sind in der string ist oder nicht .. wenn es nicht -1 zurück, wenn am Ende der gut läuft durch die Zeichenfolge 1 zurück
  • Möglich, Duplikat der Prüfen, ob string alle Buchstaben des Alphabets
  • nicht wirklich. Die vorgeschlagene doppelte fragt für jeden Algorithmus; OP hat, aber es enthält Fehler.
InformationsquelleAutor abh.vasishth | 2015-03-20
Schreibe einen Kommentar