Loading Now

[STLC++Set]diversity

STLC++_SET

Bài tập.

Tính số lượng tiểu thiểu các ký tự cần thay đổi trong chuỗi str để chuỗi đó có k ký tự khác nhau hoặc xuất ra điều đó là không thể.

Chuỗi str chỉ bao gồm những chữ cái latinh viết thường và cũng chỉ có thể thay thành những chữ cái latinh viết thường.

Ví dụ:

  • Với str = "yandex", k = 6 thì kết quả sẽ là diversity(s, k) = "0"

  • Với str = "google", k = 7 thì kết quả sẽ là diversity(s, k) = "impossible".

  • Với str = "codelearn", k = 9 thì kết quả sẽ là diversity(s, k) = "1"

Hướng dẫn.

So sánh str.length và k:

  • Nếu str.length() < k:
    • Trả về "impossible".
  • Nếu str.length() ≥ k:
    • Tạo một set s chèn từ  các ký từ trong str.
    • Nếu s.size() ≥ k:
      • Trả về 0.
    • Nếu s.size() < k:
      • Trả về k - s.size().

Code mẫu:

string diversity(string str, int k){
	set<char> s;
	int i;
	string ret;
	if (str.size() < k) {
		ret = "impossible";
	} else {
		for (i = 0; i < str.size(); i++) {
			s.insert(str.at(i));
		}
		if (s.size() >= k) {
			i = 0;
		} else {
			i = k - s.size();
		}
		ret = to_string(i);
	}
	return ret;
}

Post Comment

Contact