שלום , חיפשתי בפורום ולא מצאתי מדויק שיעזור לי.
אני אשמח לשמוע מבן אדם שעשה מבחן (שאלה ראשונה) בשפת תכנות JAVA
מה השאלה וכוון פתרון בשביל ללמוד את הנושא יותר לעומק !
תודה רבה !
ע"י: קודיםוא
שאני הייתי שם השאלה הייתה לכתוב פונקציה שמקבלת string שמכיל סוגריים ובודק שהביטוי תקין לדוגמא: (({{}})) זה תקין כי עבור כל סוגר פותח יש סוגר שסוגר אותו.
הביטוי ([({))} לדוגמא לא טוב כי המיקום של הסוגר האחרון לא במקום הנכון וחסר סוגר מרובע אחד.
סעיף ב' אותה שאלה רק תוסיף גם את הסוגר | שהוא וההופכי שלו זהים בצורה.
הפתרון הוא להשתמש במחסנית
תודה רבה , היום עברתי את המבחן הראשון , שאלו אותי רק על הסוגריים ושעלי להתייחס על ארבע סוגי הסוגריים ( ) { } < > .
וזה הפתרון שכתבתי להם .
public static boolean check (String s)
{
Stack<Character> st = new Stack<Character>();
Character old_ch = null,ch =null;
for (int i=0;i<s.length();i++)
{
ch=s.charAt(i);
if (ch=='(' ||ch=='<' ||ch=='[' ||ch=='{' )
st.push(ch);
else{
if (ch==')' ||ch=='>' ||ch==']' ||ch=='}' ){
if (st.isEmpty())
return false;
old_ch =st.pop();
if (old_ch=='(' && ch!=')') return false;
if (old_ch=='[' && ch!=']') return false;
if (old_ch=='{' && ch!='}') return false;
if (old_ch=='<' && ch!='>') return false;
}
}
}
if(!st.empty())
return false;
return true;
}
ע"י: נווה רענן
שאני הייתי שם השאלה הייתה לכתוב פונקציה שמקבלת string שמכיל סוגריים ובודק שהביטוי תקין לדוגמא: (({{}})) זה תקין כי עבור כל סוגר פותח יש סוגר שסוגר אותו.
הביטוי ([({))} לדוגמא לא טוב כי המיקום של הסוגר האחרון לא במקום הנכון וחסר סוגר מרובע אחד.
סעיף ב' אותה שאלה רק תוסיף גם את הסוגר | שהוא וההופכי שלו זהים בצורה.
הפתרון הוא להשתמש במחסנית