PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/Coding & Algorithms/Citadel

Optimize password transform and discount scheduling

Last updated: Mar 29, 2026

Quick Overview

This two-part problem evaluates string-processing and combinatorial optimization skills by combining palindromic k-periodic string transformation with a per-day interval cost minimization under a single-day discount.

  • Medium
  • Citadel
  • Coding & Algorithms
  • Software Engineer

Optimize password transform and discount scheduling

Company: Citadel

Role: Software Engineer

Category: Coding & Algorithms

Difficulty: Medium

Interview Round: Take-home Project

Part 1 — Transform to palindromic k-periodic string: Input: a lowercase string currentPassword and integer k. Constraints: 1 <= k < len(currentPassword) <= 2*10^5, and len(currentPassword) is divisible by k. Operation: you may change any character to any lowercase letter; the cost is the number of positions changed. Goal: convert currentPassword to newPassword such that (a) newPassword is a palindrome, and (b) newPassword[i] = newPassword[i + k] for all valid i (0-based). Return the minimum number of character changes required and describe the algorithm with time and space complexity. Example: currentPassword = "abzzbz", k = 3 → one optimal newPassword is "zbzzbz"; answer = 1. Part 2 — Minimize processing cost with daily discount: Input: integer n; arrays filterCost[1..n], startDay[1..n], endDay[1..n]; and integer discountPrice. For each day d, the set of active images is { i | startDay[i] <= d <= endDay[i] }. Without a discount, day d costs sum(filterCost[i] over active images i). You may apply the discount at most once per day; if applied on day d, the total cost that day is exactly discountPrice. Goal: process all n images over their required day ranges to minimize the total cost across all days; return the minimum total cost modulo 1,000,000,007. Provide the algorithm and its time and space complexity. Example: n = 3; filterCost = [2,3,4]; startDay = [1,1,2]; endDay = [2,3,4]; discountPrice = 6. Per-day sums: day1=5, day2=9, day3=7, day4=4. Using the discount on days 2 and 3 gives total 5 + 6 + 6 + 4 = 21.

Quick Answer: This two-part problem evaluates string-processing and combinatorial optimization skills by combining palindromic k-periodic string transformation with a per-day interval cost minimization under a single-day discount.

Related Interview Questions

  • Implement a single-producer multi-consumer ring buffer - Citadel (medium)
  • Sort a Nearly Sorted Array - Citadel (hard)
  • Compute BBO and NBBO from order data - Citadel (medium)
  • Design dynamic weighted random sampling with updates - Citadel (medium)
  • Compute maximum later-earlier difference - Citadel (medium)
Citadel logo
Citadel
Aug 1, 2025, 12:00 AM
Software Engineer
Take-home Project
Coding & Algorithms
5
0

Part 1 — Transform to palindromic k-periodic string: Input: a lowercase string currentPassword and integer k. Constraints: 1 <= k < len(currentPassword) <= 2*10^5, and len(currentPassword) is divisible by k. Operation: you may change any character to any lowercase letter; the cost is the number of positions changed. Goal: convert currentPassword to newPassword such that (a) newPassword is a palindrome, and (b) newPassword[i] = newPassword[i + k] for all valid i (0-based). Return the minimum number of character changes required and describe the algorithm with time and space complexity. Example: currentPassword = "abzzbz", k = 3 → one optimal newPassword is "zbzzbz"; answer = 1.

Part 2 — Minimize processing cost with daily discount: Input: integer n; arrays filterCost[1..n], startDay[1..n], endDay[1..n]; and integer discountPrice. For each day d, the set of active images is { i | startDay[i] <= d <= endDay[i] }. Without a discount, day d costs sum(filterCost[i] over active images i). You may apply the discount at most once per day; if applied on day d, the total cost that day is exactly discountPrice. Goal: process all n images over their required day ranges to minimize the total cost across all days; return the minimum total cost modulo 1,000,000,007. Provide the algorithm and its time and space complexity. Example: n = 3; filterCost = [2,3,4]; startDay = [1,1,2]; endDay = [2,3,4]; discountPrice = 6. Per-day sums: day1=5, day2=9, day3=7, day4=4. Using the discount on days 2 and 3 gives total 5 + 6 + 6 + 4 = 21.

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More Coding & Algorithms•More Citadel•More Software Engineer•Citadel Software Engineer•Citadel Coding & Algorithms•Software Engineer Coding & Algorithms
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.