עבור לתוכן

c++ מחרוזות

Featured Replies

פורסם

אני צריך לכתוב תכנית שמקבלת מחרוזת ומוצאת איזה אות מופיעה הכי הרבה פעמים אני מנסה להישתמש בהשוואת כומפר str[j].compare( str )

אבל הוא לא מתכפל אם למישהו יש רעיון אחר איך משווים אות לאות מתוך מחרוזת?

תודה מראש...

פורסם

תעשה מערך מאופס של 256 איברים. תיגש למחרוזת (לא ציינת איזה טיפוס היא, מערך של אותיות או stl string) אות אות ותגדיל את הערך של מערך האיברים באינדקס של האות הנוכחית ב 1, ולבסוף תספור מי מופיע הכי הרבה במערך.

פורסם
  • מחבר

2. כתבו פונקציה שמקבלת מחרוזת ומחזירה את התו שמופיע הכי הרבה פעמים- זאת התוכנית שאני צריך לעשות...

וזה מערך של SRING יש אפשרות להשוות תו תו ?

או לפרק את המערך לווים תווים?

אם תוכלו להרות לי איך..

פורסם

אתה משתמש ב STL ? מה זה מערך של STRING ? אולי התכוונת מערך של CHAR ? אני יניח שאם לא הבנת את השאלת בדובר במערך של CHAR, במקרה כזה, פשוט אתה ניגש לאינדקס מסויים, כמו str שרשמת, ואז אתה יכול להשוות אותו למשל

str[i] == 'a'

יחזיר true עם האות באינדקס i היא a.

פורסם

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

פורסם

טוב זה שילוב של counting sort ו find max . מה שצריך לעשות זה את שלב הספירה של הcounting sort וחוץ מזה ולשמור את האינדקס של האלמנט שהופיע עד עכשיו הכי הרבה פעמים.בכל איטרציה של ספירה להשוות את זה שעכשיו קידמנו לו את המונה עם ה"מנצח עד עכשיו" ולשנות את המנצח בהתאם . ככה אפשר לחסוך את לופ מציאת המקסימום בסוף למרות שזה לא קריטי.

פורסם

לעיתים זה כן קריטי.

זמן הריצה זה o(n+m) כאשר n זה מספר האיברים(להכניס אותם למערך הסופר), וm זה התחום(מעבר על המערך ומציאת המקסימום).

מה שאתה הצעת זה o(n) בלבד.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים