zoukankan      html  css  js  c++  java
  • 计算某个特定分隔符分隔的字符串的和

    然看到有人说这道题,求字符串 “1,4,5,8,14,24” 中所有数字的和。

    简单分析,肯定是以逗号分隔了,然后求和。

    思路一,先分隔,后循环

    <?php
    $string="1,4,5,8,14,24";
    function get_string_sum1($string='')
    {
        $array=explode(",",$string);
        $sum=0;
        foreach ($array as $key => $v)
        {
            $sum+=$v;
        }
        return $sum;
    }
    $sum=get_string_sum1($string);
    var_dump($sum);
    ?>

    效果如图:

    当然了,这是最简单粗暴的方法,你也可以换为for循环替代foreach

    思路二,先分隔,不循环 采用array_sum解决

    <?php
    $string="1,4,5,8,14,24";
    function get_string_sum2($string='')
    {
        $array=explode(",",$string);
        $sum=array_sum($array);
        return $sum;
    }
    $sum=get_string_sum2($string);
    var_dump($sum);
    ?>

    效果如图:

    这个很显然代码少写了一点 甚至你可以写成这样

    思路三,不分割,采用字符串方式解决

    如何使用字符串解决该问题呢?这就是一个思路的转化难点了,我们可以把所有的逗号分隔符替换为加号分隔符,然后让这个表达式得到结果,当然如何让表达式得到结果呢?

    请看代码

    <?php
    $string="1,4,5,8,14,24";
    function get_string_sum3($string='')
    {
        $string=str_replace(",","+",$string);
        return eval("return $string;");
    }
    $sum=get_string_sum3($string);
    var_dump($sum);
    ?>

    效果如图:

    满脑子都是骚操作,唉……

  • 相关阅读:
    bzoj 1176 cdq分治套树状数组
    Codeforces 669E cdq分治
    Codeforces 1101D 点分治
    Codeforces 1100E 拓扑排序
    Codeforces 1188D Make Equal DP
    Codeforces 1188A 构造
    Codeforces 1188B 式子转化
    Codeforces 1188C DP 鸽巢原理
    Codeforces 1179D 树形DP 斜率优化
    git commit -m "XX"报错 pre -commit hook failed (add --no-verify to bypass)问题
  • 原文地址:https://www.cnblogs.com/lizhaoyao/p/7248909.html
Copyright © 2011-2022 走看看