-1
votes

Comment trouver le caractère en double dans la chaîne sans utiliser dans des méthodes construites de classe de cordes dans des méthodes Java telles que longueur (), TOCHARARRAY (), Charat ()?

Comment trouver le caractère en double dans la chaîne sans utiliser des méthodes intégrées de classe de cordes dans les méthodes Java, telles que longueur () , TOCHARARRAY () , , Charat ( ) ?

Demandez dans une interview, donnez-moi des solutions sur ce xxx


7 commentaires

Quelle est votre tentative?


Si vous ne pouvez pas utiliser aucune méthode intégrée , vous n'avez aucun moyen de vérifier le contenu de la chaîne.


Si quelqu'un vous demande "Comment détecteriez-vous des caractères en double dans une chaîne sans utiliser de méthodes existantes de la classe de chaîne" La seule réponse correcte est "Je ne le ferais pas, car c'est stupide et inutile." Sérieusement certaines de ces questions "intelligentes et innovantes" des interviews vous permettent de remettre en question la santé mentale de l'intervieweur et de l'entreprise leur demandant.


La sortie ne semble pas correcte. Pourquoi existe-t-il C , e et r ? Je ne vois pas ces dupliqués dans l'entrée.


La lettre A n'est pas un caractère de duplication dans votre chaîne d'entrée abcdeddrb et non plus c ou E . Seuls B et d se produisent plus d'une fois.


Après avoir obtenu des commentaires, je suis d'accord avec @Ohgodspiders et si vous ne pouvez pas accéder à des méthodes string , puis la question de l'entrevue ne me semble inutile.


désolé pour la mauvaise sortie par erreur


4 Réponses :


0
votes

Je suppose ici que votre intervieweur voulait que vous utilisiez une carte pour garder une trace de laquelle des caractères ont été observés et qui n'ont pas.

String input = "abcdeddrb";
Map<Character, Integer> map = new HashMap<>();

for (int i=0; i < input.length(); ++i) {
    Integer count = map.get(input.charAt(i));
    map.put(input.charAt(i), count == null ? 1 : count + 1);
}

map.entrySet().stream()
    .filter(entry -> entry.getValue() > 1)
    .forEach(System.out::println);

b=2
d=3


4 commentaires

Vous utilisez toujours string.length ()


@ user7294900 je suis d'accord avec votre commentaire. Je vais laisser cela au cas où il s'agissait de ce que l'OP cherchait.


Strictement aucune utilisation intégrée


Honnêtement, je pense que c'est une question truc. Si cette entreprise valorise réellement des questions comme celle-ci, vous ne voudrez peut-être pas prendre cette offre.



0
votes

peut-être changer chaîne à Chaluquerence et utilise ses méthodes comme charat xxx


2 commentaires

Cela ne peut pas être le point de la question de l'entrevue. C'est comme si disant me servir une bière, mais n'utilisez pas de verre. Donc, vous me le donnez dans une botte sale à la place. C'est toujours de la bière cependant.


S'il vous plaît donnez-moi la solution complète



0
votes
public static void main(String[] args) {
    String testStr = "abcdeddrb";

    Map<Character, Integer> map = new HashMap<>();
    Map<Character, Integer> duplicateStrMap = null;
    int count = 0;
    int i = 0;

    CharacterIterator it = new StringCharacterIterator(testStr);

    // Loop Characters in a String.
    for (char c = it.first(); c != CharacterIterator.DONE; c = it.next()) {

        if(map.containsKey(c)){
            if(duplicateStrMap == null){
                duplicateStrMap = new HashMap<>();
            }
            duplicateStrMap.put(c, count);
            count++;
        }
        else{
            map.put(c, ++i);
        }
    }

    // Print Results
    if(duplicateStrMap != null){

        System.out.println("Total Duplcates Found :"+duplicateStrMap.size());            
        Iterator<Character> itr = duplicateStrMap.keySet().iterator();

        System.out.println("Duplicate Characters :");

        while(itr.hasNext()){
            System.out.println(itr.next());
        }
    }
}
Output: 
  Total Duplcates Found :2 Duplicate Characters : b d

5 commentaires

Essayez d'utiliser le localiter. J'espère que cela est utile.


Puits, stringcharacteriterator toujours utilise string.charat () quand il l'appelle.First () ou it.Suext ()


Pas de fonction intégrée Bro - Nag Ram


Aucune autre méthode intégrée, veuillez donner la bonne réponse


Aucune fonction intégrée de classe de cordes n'est utilisée. Caricatérité fait partie de l'emballage Java.Text.



2
votes

Vous pouvez le faire avec la réflexion: xxx

puisque b est le premier dupliqué char la sortie sera BD cependant, pas dB .

Peut-être que le point de la question de l'entretien était de vérifier si vous connaissez la réflexion ou pour vérifier si vous essayez d'arrêter l'entretien avec un Répondez comme "Pourquoi quelqu'un devrait-il faire ça?".


0 commentaires