当前位置: 首页 > news >正文

Leetcode JAVA刷刷站(38)外观数列

一、题目概述

二、思路方向

       为了解决这个问题,我们可以编写一个Java函数countAndSay,该函数接受一个整数n作为输入,并返回外观数列的第n个元素。这个函数将基于递归公式来构建数列,其中countAndSay(1) = "1",而countAndSay(n)countAndSay(n-1)的行程长度编码。

三、代码实现 

public class Solution {  public String countAndSay(int n) {  if (n == 1) {  return "1";  }  // 递归调用以获取前一个外观数列  String prev = countAndSay(n - 1);  // 用于构建当前外观数列的StringBuilder  StringBuilder sb = new StringBuilder();  // 初始化计数器和当前字符  int count = 1;  char currentChar = prev.charAt(0);  // 遍历前一个外观数列  for (int i = 1; i < prev.length(); i++) {  // 如果当前字符与前一个字符相同,则计数器加1  if (prev.charAt(i) == currentChar) {  count++;  } else {  // 如果当前字符与前一个字符不同,则将计数器和当前字符添加到结果中  // 并重置计数器和当前字符  sb.append(count).append(currentChar);  count = 1;  currentChar = prev.charAt(i);  }  }  // 不要忘记添加最后一个字符的计数和字符  sb.append(count).append(currentChar);  // 返回构建好的当前外观数列  return sb.toString();  }  public static void main(String[] args) {  Solution solution = new Solution();  int n = 5;  System.out.println(solution.countAndSay(n)); // 输出外观数列的第n个元素  }  
}

执行结果:  

四、小结

       在这个实现中,我们首先检查基本情况,即n == 1时,直接返回"1"。然后,我们递归地调用countAndSay(n - 1)来获取前一个外观数列。接下来,我们使用一个StringBuilder来构建当前外观数列。我们遍历前一个数列,使用一个计数器来跟踪当前字符的连续出现次数,并在遇到不同的字符时,将计数器和当前字符添加到结果中。最后,我们返回构建好的字符串作为结果。

       在main方法中,我们创建了一个Solution对象,并调用countAndSay方法来获取并打印外观数列的第n个元素。你可以根据需要修改n的值来测试不同的输入。

 结语  

一个人至少拥有一个梦想

有一个理由去坚强

心若没有栖息的地方

到哪里都是在流浪

!!!


http://www.mrgr.cn/news/381.html

相关文章:

  • Vue 3 深入指南:`watch` 属性监控与响应式处理
  • C语言——操作符详解
  • 多媒体技术及应用课程思政网站
  • 【FDA新药】全球首款靶向CXCR4罕见病WHIM综合征的治疗药物Xolremdi获批上市
  • Jedis和SpringDataRedis
  • 【网络】UDP回显服务器和客户端的构造,以及连接流程
  • xssnote
  • 电商平台的推荐算法需要备案吗?
  • 【云原生】Kubernetes中的名称空间和资源配额详细用法与应用实战
  • TinTinLand Web3 + DePIN 共学月|深入探索 DePIN 项目,全景分析去中心化网络未来
  • 跨进程通信使用 Zenoh中间件 进行高效数据传输的测试和分析
  • 【深度学习基础】关于卷积神经网络你了解多少?
  • Linux Xfce 桌面环境系统休眠的问题
  • 本地连接服务器上docker中的redis
  • KV存储之ETCD
  • Linux网络设置
  • 基于Hadoop的汽车大数据分析系统设计与实现【爬虫、数据预处理、MapReduce、echarts、Flask】
  • 基于spring boot的疫情信息管理系统
  • AWS域名注册服务:为您的在线业务打下坚实基础
  • 快讯 | OpenAI 找回场子:chatgpt-4o-latest 刷新多项AI跑分纪录