SHELL21. 格式化输出
描述
1121231234123456
1121231,234123,456
Bash 解法, 执行用时: 2ms, 内存消耗: 432KB, 提交时间: 2022-03-01
#!/bin/bash while read line do printf "%'d\n" $line done <nowcoder.txt
Bash 解法, 执行用时: 2ms, 内存消耗: 452KB, 提交时间: 2021-12-10
while read lines; do printf "%'d\n" $lines done<nowcoder.txt
Bash 解法, 执行用时: 3ms, 内存消耗: 408KB, 提交时间: 2022-04-18
while read line; do len=${#line} mod=$(($len%3)) str="" if [ $mod -ne 0 ]; then str="${line:0:$mod}" else str="${line:0:3}" fi mod=${#str} for((i=$mod;i<$len;i=$i+3)); do str="$str,${line:i:3}" done echo $str done < nowcoder.txt
Bash 解法, 执行用时: 3ms, 内存消耗: 408KB, 提交时间: 2021-11-25
while read line do k=0 lStr=${#line} for ((i=$lStr-1; i>=0; i--)) do ((k++)) str="${line:i:1}$str" [ $(($k%3)) -eq 0 ] && [ $i -ge 1 ] && [ $lStr -gt 3 ] && str=",$str" done echo "$str" str="" done
Bash 解法, 执行用时: 3ms, 内存消耗: 412KB, 提交时间: 2022-03-18
set -x while read line do a="" j=${#line} i=$((${#line} - 3)) while true do if (( i < 0)) then i=0 fi if [[ -n $a ]] then a=",$a" fi a=${line:$i:$j-$i}$a if [[ $i -eq 0 ]] then break fi j=$i ((i-=3)) done echo ${a[@]} done