פורסם 2011 במרץ 2614 שנים שלום,יש לי שאלה בויזואל סטודיו C .אני אמור לקלוט מחרוזת לתוך מערך(את זה כבר עשיתי) ולהדפיס תת מחרוזת מקסימלית(מכל התת מחרוזות מבחינת הגודל) שחוזרת על עצמה הכי הרבה פעמים במחרוזת הראשית.אני אתן דוגמא: במחרוזת 121212 ,התת מחרוזת הכי גדולה שחוזרת על עצמה הכי הרבה (3 פעמים) היא "12". במחרוזת 1000022 ,התת מחרוזת הכי גדולה שחוזרת על עצמה הכי הרבה (4 פעמים) היא "0".תודה לעוזרים.
פורסם 2011 במרץ 2614 שנים הצורה הפשוטה והמתבקשת היא הצורה הבאה:לקלוט את כל רצפי המחרוזות הקיימות במחרוזת שנתקבלה, דהיינו אם המחרוזת היא: 121יש את המחרוזות הבאות: 1,2,1,12,21,121לאחר שעשית את זה זה נהיה הרבה יותר פשוט, לבדוק הופעה של כל תת מחרוזת על המערך החדש.הבעיה פה אולי זה סיבוכיות שעולה ומסתבכת אקספוננציאלית.אם בכל זאת לא תמצא פתרון אחר, יצירתי יותר, האלגוריתם לעשות מה שרשמתי יהיה ממש פשוט, תעשה אותו איטרטיבי עדיף, 2 לולאות.
פורסם 2011 במרץ 2614 שנים מחבר מה יותר חשוב לך? אורך המחרוזת או מספר החזרות?מספר החזרות יותר חשוב מגודל המחרוזת למשל: 11333113331111 אז המחרוזת "1" חוזרת הכי הרבה פעמים.היא זו שתודפס.אבל אם יש מחרוזות שמס' החזרות שלהן הוא זהה אז תודפס הארוכה מביניהם,למשל:1123123723 .כאן יודפס "23" ולא "1"
פורסם 2011 במרץ 2614 שנים אה, נורא פשוט. קודם, נמצא את האות שחוזרת הכי הרבה פעמים, תשמור את המיקומים שלהן, ואז תעבור אות אות אחרי המיקומים שמצאת כל עוד האות הבאה זהה.
פורסם 2011 במרץ 2814 שנים מחבר אוקיי הצלחתי לעשות את זה אך נוצרה לי בעיה מסויימת.למשל במחרוזת 11456456קיימות שתי תתי מחרוזות שחוזרות על עצמן פעמיים.והתוכנית אמורה להדפיס את "456" כי היא יותר ארוכה.אצלי במצב הזה היא מדפיסה "1".זה הופך את העיניין להרבה יותר מסובך
פורסם 2011 במרץ 2814 שנים אז יש לך באג. בלי הקוד שלך לא נוכל לדעת מהו.שים לב שאם יש לך שני תווים שונים שמופיעים אותו מספר של פעמים אז אתה צריך לדאוג לשמור את שניהם, לא רק את הראשון.
פורסם 2011 במרץ 2814 שנים מחבר אוקיי אז זה הופך את העיניין להרבה יותר מסובך,במיוחד לכתוב את זה.-זה אומר לשמור את התווים שמופיעים אותו מספר פעמים בתוך מערך-עבור כל תו לשמור את המיקומים שלו (במחרוזת) בתוך מערך-יכולים להיות כאן מספר רב של מערכים.-עבור כל תו לבדוק את אורכה של המחרוזת הזהה שבאה אחריו ולהשוות את אורכה עם תווים אחרים.נשמע לי ארוך ומסורבל הסיפור,לא?!
פורסם 2011 באפריל 214 שנים I'll write in English for convenience.Not sure what you've done so far, but here's my suggestion:Supose your string is stored in str.Create a loop that goes from i=1 to n-1. Each iteration will try to find the substring in length 'i' that is repeated maximum number of times.On each iteration, use an internal loop to run through the start of the substring. So you have j=0 to n-i. Now create a function called CountSubstr that accepts a position and lenght, and go over str counting the number of time the substring in position and length appears in str.Now all you have to do is keep 3 variables (no arrays), maxPosition, maxLenght and maxCount. Every time you count the number of times a substring occur in str comare the length and count and update if necessary.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.