Summary
I would like to have a efficient macro for parenthesis that I can use in all of my documents and macros.
The issues and my attempts
My first solution and its drawback
For parenthesis, I'm using the macro
\newcommand{\pth}[1]{\left(#1\right)}
But, in some cases, this macro induces extra horizontal space. For instance,
\newcommand{\numberOfCycles}[2]{\mathscr{N}_{#1}\left(#2\right)}
produces a extra space after the "N", as shown here 
My new solution and its drawback
That's why I change my macro \pth to \newPth defined by
\newcommand{\newPth}[1]{\mathopen{}\left(#1\right)\mathclose{}}
But, this macro seems to be not compatible with exponents. See this MWE:
\documentclass{article}
\newcommand{\pth}[1]{\left(#1\right)}
\newcommand{\numberOfCycles}[2]{\mathrm{N}_{#1}\left(#2\right)}
\newcommand{\newPth}[1]{\mathopen{}\left(#1\right)\mathclose{}}
\begin{document}
[
\numberOfCycles{i}{\sigma}
]
[
\newPth{1 + \frac{1}{n}}^n
]
\end{document}
My questions
- Generally, I would like to receive advice on theses issues.
- Does someone has a solution that would cover these two cases?

\leftand\rightindiscriminately each and every time a "fence" symbol is encountered. See, e.g., Is it ever bad to use \left and \right? as well as Automatic left and right commands and Macro for \left( and \right). – Mico May 09 '20 at 14:45