- Ram slapped a man who was molesting a woman. He did what he should have done.
- Ram slapped a man who was molesting a woman. He did what he should do.
I think both are correct. Please explain.
Hi, Subhajit: Only your first example works, and I would naturally elide "done": "He did what he should have." (In other contexts, you could use "He did what he was supposed to (do)", but "(be) supposed to" doesn't work well in your particular examples, because Ram wasn't exactly adhering to any particular duty of his.) Your second example does not work, but it could be fixed by changing "he" to the generic "one": "He did what one should do (in such circumstances)." That sentence expresses that he acted according to a universal duty. Another, somewhat old-fashioned formulation is "He didn't do anything untoward."