Belirli bir dizenin güç kümesini oluşturan bir yöntem oluşturmaya çalışıyorum. Şimdiye kadar, yanlış bir şekilde "[abc, bc, c, b, ac, c, a, ab, b, a]" çıktılar.Bir String'in güç kümesinin oluşturulması
public static ArrayList<String> powerSet(String s){
ArrayList<String> set = new ArrayList<String>();
if(!s.isEmpty())
set.add(s);
for(int i=0; i<s.length();i++){
String substring = s.substring(0, i) + s.substring(i+1);
set.addAll(powerSet(substring));
}
return set;
}
Bu ödevin parçası içindir ve ben yardımcı sınıfının her türlü oluşturmak için izin yok, ve yöntem tipi ArrayList olmalıdır. Yöntem, yinelemeyi içermelidir.
Herhangi bir yardım için minnettarım!
cevap ne olmalıdır? Sipariş önemli mi? –
@PaulBoddington Sıralama önemli değil, ama doğru cevap "", "a", "b", "c", "ab", "ac", "bc", "abc" satırları boyunca bir şey olmalı. . – skulltula
Tamam, peki aslında bunu yaptın. Sadece "" ekleyin, ArrayList yerine HashSet'i kullanın, ardından sonunda bir ArrayList'e dönüştürün. –