מחברת 5, מלחמה וזהו - מילים עם אותו מספר מופעים

תגיות:

אחרי שעות רבות על התרגיל… הצלחתי! וזה אפילו רץ בזמן קצר.
אממה, הקוד שלי מתעלם ממילים עם אותו מספר מופעים :frowning:
יש כמובן המון כאלה, אבל קצת הנחתי שהסיכוי שזה יקרה במילים עם מספר מופעים גדול הוא ממש קטן.
האם זה מתקבל? :pray:
אם לא, אפשר להתייעץ על הקוד שלי ועל מיקום הבעיה?
כי אני באמת שוברת על זה את הראש המון ולא מצליחה לבד.

מה הכוונה ממילים עם אותו מספר מופעים ?

למשל, שתי מילים שמופיעות 5 פעמים.
הנחתי שהסיכוי שיהיו שתי מילים שמופיעות 34563 פעמים הוא אפסי, ולכן תהיתי אם זה בסדר להתעלם מזה.

סליחה אני פשוט עדין לא ממש מצליח להבין.
מה הכוונה שתי מילים שמופיעות 5 פעמים ? המילה “טוב” נגיד תופיע 5 פעמים, והמילה “לא” תופיע 5 פעמים… ?

בדיוק. הקוד שבניתי מתעלם מהקיום של אחת מהן.

לייק 1

אבל זה לא נשמע הגיוני, הרי עם המילה “טוב” מופיעה בטקס 5 פעמים, וגם המילה “לא”
ונגיד אין מילים שמופיעות יותר מהן, אז הן שתיהם אמורות להופיע ברשימה הסופית.

ומה אם הייתה עוד מילה שמופיעה 5 פעמים…

ברור שבטקסט קטן זה לא עובד, אבל המספרים בתרגיל הרבה יותר גדולים מזה ולכן שאלתי.

אני באותו מצב… לא פשוט בכלל :confused:
הייתי שמח לקצת הכוונה

אי אפשר לעשות הנחה כזו, לדעתי זה מצב לא תקין.
המצב של כמות מילים זהה הוא לגמרי הגיוני, וזה לא משנה עבור איזה אורך טקסט הקוד שלך בודק.

שעושים קוד הוא אמור להיות נכון עבור כל סוג טקסט, לא עבור טקסט גדול או קטן.

לייק 1

אחלה. אז האם אפשר להתייעץ על איך לפתור את זה?

ורק אציין שזה לא נכון, ברוב התרגילים אנחנו לא פותרות לפי המקרה הכללי ביותר אלא לפי המקרה הספציפי בתרגיל.
אני את התרגיל פתרתי, כי באמת אין שוויון במספר המופעים בין 10 המילים הכי נפוצות.
אבל אם זו דרישת המערכת מן הסתם אנסה לעשות את זה, פשוט זה לא מובן מאליו.

לייק 1

זו הנחה שאת לא יכולה להניח.
את אמורה לפתח דרך חשיבה כלשהי ולא “עבור התרגיל הספציפי הזה”.
תנסי לפתור כך שזה יענה על “כל המקרים”.
ואם צריך עזרה, כולם פה בכיף יעזרו לך

שאנחנו עושים קוד למשל שבודק אקרוסטיכון - הוא אמור לדעת לבדקו עבור כל טקסט ובכל אורך.
ששאנחנו בודקים אם מחרוזת היא פולינדרום - אנחנו בודקים עבור כל אורך של מחרוזת…
וכו …
זו דעתי בכל מקרה…

בכל מקרה בטח שאפשר להתייעץ - נתחיל בלמה בעצם הוא דורס לך שתי מילים שיש להם את אותו המספר ?

לייק 1

אני קצת לא בטוחה מה מותר לציין כאן ומה לא…
הגעתי למצב שיש לי רשימה של 10 ה-counts המקסימליים של מילים בטקסט.
עכשיו נותרה לי המשימה של להדפיס את המילים המתאימות להם.
יצרתי מילון על בסיס הטקסט שה-keys שלו הם מספר המופעים, וה-values המילים, והדפסתי את ה-values שמתאימים ל-counts שמצאתי קודם.
אממה, בעת יצירת המילון כל מילה שיש לה את אותו מספר מופעים מן הסתם נמחקת כי יש שני אלמנטים במילון עם אותו key.

אז הבנת בעצמך, למה לא להחליף בין המפתחות לערכים?

2 לייקים

כלומר האם הגיוני שברשימה שיצרת יכול להיות לי שני מספרים אותו הדבר ?
נגיד [ 100, 100 ,60, 48 , 102 … ]

שעל פניו מייצגים שתי מילים שונות עם אותו המספר

לייק 1

כי מה שיש לי זה מספר המופעים של 10 המילים הנפוצות, לא המילים עצמן.
אז כדי להדפיס את המילים חשבתי לעשות את המילון ההפוך.

מה מונע ממך לעשות את המילון “הפוך” מהדרך שלך, למיין אותו בצורה הזו ולהדפיס את ה-10 מילים הרצויות?

לייק 1

אם את רוצה להמשיך עם השיטה שלך , אז הייתי מציע שתבדקי אם כבר בדקת את המילה עבור מספר ההופעות הזה.
למשל אם בדקה שנגיד עבור 5 קיבלת “טוב”, ושוב יש לך 5 ברשימה, תבדקי שהמילה החדשה לא נבדקה.

לייק 1

זה לא כזה משנה כי בסופו של דבר טקסט שיופיעו בו נגיד:
100 פעמים המילה “או”
100 פעמים המילה “אני”
27 פעמים המילה “כן”
5 פעמים המילה “לא”
.
.
.

יווצר מצב שמילה אחת “עולה” על השנייה - וזה חיסרון קטן של המילון, אבל גם אפשר לקחת את זה כיתרון (פשוט צריך לדעת לבחור מה יהיה המפתח ומה הערך)