自学内容网 自学内容网

牛客NC101 压缩字符串(一)【简单 模拟 Java,Go,PHP】

题目

在这里插入图片描述
题目链接:
https://www.nowcoder.com/practice/c43a0d72d29941c1b65c857d8ac9047e

思路

直接模拟

参考答案Java

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param param string字符串
     * @return string字符串
     */
    public String compressString (String param) {
        //直接模拟
        StringBuilder sb = new StringBuilder();
        int n = param.length();
        for (int i = 0; i < n ; i++) {
            char c = param.charAt(i);
            int cnt = 0;
            int j = i;
            for (; j < n ; j++) {
                if (param.charAt(j) == c) {
                    cnt++;
                } else {
                    break;
                }
            }

            if (cnt > 1) {
                sb = sb.append(c + "" + cnt);
            } else {
                sb =  sb.append(c + "");
            }

            i = j - 1;
        }

        return sb.toString();
    }
}

参考答案Go

package main
import (
    "strings"
    "strconv"
)
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param param string字符串
 * @return string字符串
 */
func compressString(param string) string {
// 直接模拟
n := len(param)
var ans strings.Builder
for i := 0; i < n; i++ {
c := param[i]

j := i
cnt := 0

for ; j < n; j++ {
if c == param[j] {
cnt++
} else {
break
}
}
ans.WriteString(string([]byte{c}))
if cnt > 1 {
ans.WriteString(strconv.Itoa(cnt))
//ans = ans + string([]byte{c}) + strconv.Itoa(cnt)
}

i = j - 1
}
return ans.String()
}

参考答案PHP

<?php


/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param param string字符串 
 * @return string字符串
 */
function compressString( $param )
{
    //直接模拟
    $n = strlen($param);
    $ans = "";
    for($i=0;$i<$n;$i++){
        $c = $param[$i];
        $j = $i;
        $cnt = 0;

        for(;$j<$n;$j++){
            if($param[$j] ==$c){
                $cnt++;
            }else{
                break;
            }
        }

        if($cnt>1){
            $ans = $ans.$c.$cnt;
        }else{
            $ans =$ans.$c;
        }

        $i=$j-1;
    }
    return $ans;
}

原文地址:https://blog.csdn.net/weixin_37991016/article/details/136963973

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!