Java :: Aufgabe #350

1 Lösung Lösung öffentlich

Anzahl möglicher Ballons (balloons)

Anfänger - Java von JKooP - 02.04.2021 um 19:06 Uhr
In einem String kommen unsortiert Zeichen vor, mit denen man das Wort „balloon“ bilden soll.
Erstelle eine Methode/Funktion, die als Ergebnis die Anzahl der möglichen Wortbildungen ausgibt,
wobei jeder Buchstabe (Zeichen) nur einmal verwendet werden darf.

Beispiel 1:
s = "nlaebolko"
Lösung: 1

Beispiel 2:
s = "loonbalxballpoon"
Lösung: 2

Beispiel 3:
s = „balbalonn“
Lösung: 0

Viel Spaß

Lösungen:

vote_ok
von n1again (560 Punkte) - 11.04.2021 um 00:40 Uhr
Quellcode ausblenden Java-Code
import java.util.Arrays;

public class BalLoons {

	public static void main(String[] args) {
		
		String s = "balbalonn";
		char[] charArray = s.toCharArray();
		char[] balloonArray = new char[charArray.length];
		
		
		for(int i = 0; i < charArray.length; i++) {
			
			if(charArray[i] == 'b' || charArray[i] == 'a' || charArray[i] == 'l' || charArray[i] == 'o' || charArray[i] == 'n') {
				balloonArray[i] = charArray[i];
				charArray[i] = 0;
			}
		}
		
		int bCounter = 0;
		int aCounter = 0;
		int lCounter = 0;
		int oCounter = 0;
		int nCounter = 0;
		for(int i = 0; i < balloonArray.length; i++) {
			if(balloonArray[i] == 'b') {
				bCounter++;
			}
			if(balloonArray[i] == 'a') {
				aCounter++;
			}
			if(balloonArray[i] == 'l') {
				lCounter++;
			}
			if(balloonArray[i] == 'o') {
				oCounter++;
			}
			if(balloonArray[i] == 'n') {
				nCounter++;
			}
		}
		
		int balloonCounter = 0;
		while(bCounter >= 1 && aCounter >= 1 && lCounter >= 2 && oCounter >= 2 && nCounter >= 1) {
			balloonCounter++;
			bCounter--;
			aCounter--;
			lCounter -= 2;
			oCounter -= 2;
			nCounter--;
		}
		
//		System.out.println(Arrays.toString(charArray));
//		System.out.println(Arrays.toString(balloonArray));
//		System.out.println("B: "+bCounter+"- A: "+aCounter+" - L: "+lCounter+" - O: "+oCounter+" - N: "+nCounter);
		System.out.println("BalloonCounter: "+balloonCounter);
		
		
	}
}