I write all my leases with an early-exit clause. The tenant can end the lease early by paying $X (usually about two months of rent) or 50% of the remaining term, whichever is lower, and by giving the usual 30 days notice at or before the start of the month.
If the lease doesn't have an early-exit clause, let her out of the lease, with the following conditions.
1. 30-day (or full month) notice starts at the beginning of the month.
2. She pays rent for the full notice period.
3. You're holding on to the damage deposit after she moves out in case there's no other tenant, but she's still on the hook to pay for any damages or excess cleaning beyond the usual apartment-turning stuff.
4. If you, or she, finds an acceptable replacement to take over the lease and move in when she moves out, she can have the damage deposit back less any actual damages or cleaning expenses. (It's against the law to collect double rent.)
5. In the meantime, consider offering a "finder's fee" rent credit for any other tenant you have who refers a replacement. Whoever finds you a qualified, acceptable replacement tenant to take over for their neighbor gets that amount off their next month's rent. This does three things: it makes people value their neighbors a bit more, it increases the odds you won't have a vacancy, and it guarantees that at least that pair of tenants knows their neighbors.
Believe me, it's worth more than $100 to get that vacancy filled, and the absolute last thing you want in an apartment is a person who doesn't want to be there.
When I buy a building where some tenants have a verbal lease or a badly written one, the first thing I do is to go around to the whole building and offer everyone an incentive to tear up the old lease and sign a new, better-written one with me in exchange for either a small reduction of rent or a $100 credit toward their next month's rent. That way I can adjust the terms, improve the house rules, get everyone on the same annual cycle, and make any bad tenants uncomfortable enough to leave.
The thing about just letting the tenant walk is that, unless a judge breaks the lease or you dissolve the contract by mutual agreement, you're still bound by the terms of the lease even if the tenant isn't there.