نوشته شده توسط
zizi_zizi69
سلام
من یک arraylist دارم که شامل یکسری کاراکترهای رشته ای است،میخوام یک رشته فرضی را بهش بدم و اگر اون رشته شامل کاراکتر های بود که در arraylist هست یک بار در رشته باشه یک بار نباشه.
مثلا
ورودی {َ"B","A"} و AaBD
خروجی:َaBD,AaD,aD,AaBD
میشه راههای مختلفی را بفرمایید.
ممنون
نوشته شده توسط
zizi_zizi69
گویا سوالم را واضح مطرح نکردم،
ببینید اگر در رشته ای دوتا از یک کاراکتر باشه مثلا :
رشته "SbS" ،
در این رشته "S" رشته ای از arraylist ما باشه،{"S"}
در اون صورت خروجی ما "bS"و "Sb" و"b" باید باشه
در حالی که با دستور replace نتیجه نهایی فقط "b" هست،
کسی نظری یا پیشنهادی نداره؟
ممنون
نتایج نمونه هایی که آوردین با همدیگر سازگانی ندارن.
در مثال اول یکبار نیز کل رشته انتخاب میشه ولی در مثال دوم شما SbS را جز نتیجه مورد نظر قرار ندادین چرا؟
از طرفی با این توضیحات، فکر می کنم شما اگر رشته ی sBsDs را داشته باشین و S کاراکتر مورد نظر باشه 2 به توان 3 ترکیب نیاز دارین یعنی اینها:
sBsDs
sBD
BsD
BDs
sBsD
BsDs
sBDs
BD
و حالا رشته ی sBBsDDEsK را تصور کنید کاراکتر های s و K هدف ما هستند، چه زیر رشته هایی از رشته ی اصلی را نیاز دارین بدست آورین؟
آیا این substring ها را نیاز دارین (البته یکی از عناصر را پیدا نکردم)
sBBsDDEsk
sBBDDE
sBBsDDE
sBBsDDEs
sBBDDEs
sBBDDEk
sBBsDDEk
BBsDDEsk
BBsDDEs
BBsDDEk
BBDDEsk
BBDDEs
BBDDEk
BBDDE
BBsDDE
اگر این نتیجه، نتیجه ی دلخواه شما باشد، در واقع این مساله، مساله ی معروف Power Set خواهد بود که تعداد زیر مجموعه های آن برابر است با 2 به توان N (در مثال N برابر با عناصر هدف هست یعنی تعداد s جمع بر تعداد k که می شود 4) که در مثال ما 16 زیر مجموعه خواهد بود،
به این مثال توجه کنید:
A = {a, b, c} --d
P(A) = { {a}, {b}, {c}, {a,b}, {a,c}, {b,c}, {a,b,c}, {null}} --d
پیشنهاد من این هست که دنبال الگوریتم Power Set در اینترنت بگردین.
موفق باشید.