Arrays symmetrisch oder nicht?

Neue Frage »

Auf diesen Beitrag antworten »
InFlames Arrays symmetrisch oder nicht?

Hey Leute!

Ich bin neu hier & weiß nicht ganz ob meine Frage genau hier reingehört, aber ich probier's einfach mal smile

Leider bin ich absolut kein Informatikgenie traurig Aber da ich für eine Prüfung büffeln muss, muss das iwie in meinen Kopf. Hier eine Aufgabe die ich nicht ganz verstehe:

Ein Abschnitt eines Arrays wird beschrieben durch den ersten Index und den letzten Index. Er ist symmetrisch, wenn das erste Element des Abschnitts gleich dem letzten ist, das zweite gleich dem vorletzten usw.

Erstellen Sie eine Funktion die überprüft, ob ein Abschnitt eines Arrays symmetrisch ist oder nicht. Die Funktion soll true bzw. false zurückgeben.

Bsp.:

isSymm(array(1,2,3,4)) -> false

Wie sieht der Lösungsweg aus? Keine Angst, ihr sollt nicht meine Hausaufgaben machen Augenzwinkern Ich bin Studentin und brauche einfach ein wenig Hilfe um durch diese miese Prüfung zu kommen großes Grinsen

Über Hilfe bin ich dankbar! smile

Liebe Grüße Wink
 
Auf diesen Beitrag antworten »
Karlito

Hallo,

ich denke das lässt sich am einfachsten bewerkstelligen, indem du in einer Schleife über das array gehst.

Du übergibst der Funktion ja das Array, wie du es geschrieben hast. Dann prüfst du in der Schleife ob die Bedingung zutrifft.

Versuche mal bitte einen Ansatz zu posten, und bitte schreibe dazu, welche Sprache benutzt wird.

VG,

Karlito
Auf diesen Beitrag antworten »
Björn

Ich klinke mich hier mal mit ein, denn genau die gleiche Aufgabe habe ich auch :-)

Mein Lösungsansatz funktioniert aber nicht ganz wie ich es gerne hätte:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:

package javaissymmetrie;

public class JavaisSymmetrie 
{
    public static void main(String[] args) 
    {
        int [] array = {1,2,3,3,2,1}; 
        System.out.println(isSymmetrie(array));
    }
    
    public static boolean isSymmetrie (int [] array)
    {
        int laenge = array.length;
        int counter = 0; 
        for (int i=0; i<array.length;i++)
        {
            if (array[i]==array[laenge-1])
            {
                ++counter;
            }
        --laenge; 
        }
       return counter==laenge?true:false;  
    }

}



Vielen Dank für etwailige Vorschläge :-)
Auf diesen Beitrag antworten »
Björn

Hab meinen Fehler gefunden, so müsste es stimmen :-)

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
package javaissymmetrie;

public class JavaisSymmetrie 
{
    public static void main(String[] args) 
    {
        int [] array = {3,4,1,5,1,3,3}; 
        System.out.println(isSymmetrie(array));
    }
    
    public static boolean isSymmetrie (int [] array)
    {
        int laenge = array.length;
        int counter = 0; 
        for (int i=0; i<array.length/2;i++)
        {
            if (array[i]==array[laenge-1])
            {
                ++counter; 
            }
            --laenge; 
        }
       return counter==array.length/2?true:false; 
    }
}

 
Auf diesen Beitrag antworten »
eulerscheZahl

Wenn du in der Schleife counter erhöhst und von laenge 1 abziehst, ist laenge am Ende 0.

Zitat:
return counter==array.length/2?true:false;

oder auch return counter==array.length/2; smile

Etwas kompakter:
code:
1:
2:
3:
4:
5:
6:
7:
8:
public static boolean isSymmetrie(int[] array) {
	int l = array.length;
	for (int i = 0; i < l / 2; i++) {
		if (array[i] != array[l - 1 - i])
			return false;
	}
	return true;
}
Auf diesen Beitrag antworten »
Björn

Vielen Dank für deine Antwort :-)
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »