שלום!
קיבלתי לש.ב בשפת C את השאלה הבאה:
ציטוט:
שרשרת סימטרית של '$' היא סדרה של תווים המתחילה ומסתיימת ב-'$ד ובדיוק באמצעיתה נמצא התו '$'. כתוב פונקציה המקבלת מערך תווים שאורכו max ואורך של שרשת len ומחיזרה 1 אם יש במערך שרשרת סימטרית של $, או 0 אם אין.
|
דוגמאות לשרשראות סימטריות
ds4$$$444
abc$xxx$yyy$zzz
אני פתרתי את זה כך:
PHP קוד:
#include <iostream.h>
#include <conio.h>
#define len 7
char str(char string[len])
{
int i,mik1=-1,mik2,mid;
for(i=0;i<len;i++)
{
if(string[i] == '$')
{
if(mik1 == -1)
{
mik1 = i;
}
else
mik2 = i;
}
}
mid = mik1+mik2;
if(mid/2 != mid/2.0)
return 0;
else
if(string[mid/2] == '$')
return 1;
else
return 0;
}
void main()
{
int i;
char string[len];
for(i=0;i<len;i++)
string[i] = getche();
cout<<endl<<(int)str(string);
}
לשם ניסיון נתתי ל-Len אורך 7.
אשמח לדעת אם יש למישהו פיתרון טוב יותר או פשוט יותר.
תודה!