如何获取(打印)数组中元素个数最多的行的元素个数?

如何获取(打印)数组中元素个数最多的行的元素个数?

例如,在下面的 MWE 中,数组第一行有 12 个元素,而数组第二行有 10 个元素,所以我想要一个命令可以自动打印数组中元素数量最多的行中的元素数量:12。

梅威瑟:

\documentclass[tikz]{standalone}
\ExplSyntaxOn
\seq_new:N \l_node_row_seq  
\seq_new:N \l_node_tmp_seq 
\cs_set:Npn \timelist #1 {
  \seq_set_split:Nnn \l_node_row_seq {;} {#1}
  \int_step_inline:nn{\seq_count:N \l_node_row_seq}
  {
    \seq_if_exist:cF {l_node_row_##1_seq}
    {
      \seq_new:c {l_node_row_##1_seq}
    }
    \exp_args:Ncx\seq_set_from_clist:Nn {l_node_row_##1_seq} {\seq_item:Nn \l_node_row_seq{##1}}
  }
}

\cs_set:Npn \PrintTime [#1][#2] {
  \tl_if_empty:nTF { #1 }
  {
    \tl_if_empty:nTF { #2 }
    {
      \seq_use:Nn \l_node_row_seq {,}
    }
    {
      \int_step_inline:nn{\seq_count:N \l_node_row_seq}
      {
        \seq_put_right:Nn \l_node_tmp_seq {\seq_item:cn {l_node_row_##1_seq}{#2}}
      }
      \seq_use:Nn \l_node_tmp_seq {,}
    }
  }
  {
    \tl_if_empty:nTF {#2}
    {
      \seq_use:cn {l_node_row_#1_seq}{,}
    }
    {
      \seq_item:cn {l_node_row_#1_seq}{#2}
    }
  }
}
\ExplSyntaxOff
\usetikzlibrary{calc}


\begin{document}
\timelist{
3,.,1,4,1,5,9,2,6,5,3,5;
2,.,7,1,8,2,8,1,8,2}
\tikz
{
\foreach \x in {1,2,...,12}
    {
      \node[xshift=.5*\x in] at (-\x,1) {\texttt{\PrintTime[1][\x]}};
      \node[xshift=.5*\x in] at (-\x,0) {\texttt{\PrintTime[2][\x]}};
    }
}
\end{document}

数组中元素个数最多的行的元素个数为12

现在,如果有一个命令,例如,命令的名称是count,那么如果我输入

\count{
3,.,1,4,1,5,9,2,6,5,3,5;
2,.,7,1,8,2,8,1,8,2
}

然后它就会12自动打印了,如何实现呢?

相关内容