java 字符串索引从0开始_无限字符串中的字符串的第一个索引-Java
介绍
我有一个无限的字符串.这个字符串的长度在我们的想象中是无限的并且不能被限制,假设我们有一个这样的序列String:
“123456789…”
数字9之后的点实际上表示下一个序列.因此,它将是这样的:
“…7891011121314…”
要求
在本节中,我想解释有关要求.要求是找到输入String首次出现的索引(称为n).让我给你举个例子:
例子1
n=”3″
First Index of n = 2
例子2
n=”910″
First Index of n = 8
问题
我已经对算法进行了编码,以找到字符串n的索引.但是该算法只是一个while循环,用于检查n的索引,如果找不到n的索引,则一个接一个地添加下一个序列号.我想要一个更好的算法来找到n第一次出现的索引,而不必依赖循环或较少循环.至少,如果n的值很大(例如:123456790或62716855),该算法的运行时间不会超过2秒.
– -编辑 – –
我的代码段:
while(!num.contains(s)){
num +=start.toString();
start = start.add(BigInteger.ONE);
}
解决方法:
这是如何解决此问题的一般说明.将其转换为Java仍然很困难.
输入的String基本上是所有自然数1 2 3 4 5 6 8 9 10 11 …的无限序列.
我相信练习的重点是确定子字符串n所属的输入字符串的自然数的第一个子序列,然后在不实际构造大的“无限”字符串的情况下计算其索引.
为此,您必须尝试将子字符串n拆分为一个数字递增的序列,该序列应具有尽可能少的数字.
首先,您必须检查子字符串n是否创建一个由一位数字组成的序列.就是这种情况,例如,如果n == 345678(请注意,n可能同时包含一位数字和两位数字,例如n == 345678910,您也应该能够识别).
如果在该步骤中失败,则应查找两位数的序列.例如,如果n == 33343536,就是这种情况.现在,这可能会变得更加棘手,因为n == 2333435363也是两位数字的序列,但是序列的前导和尾数(32和37)是被截断.
如果再次失败,则将查找3位数字的序列.
如果找不到任何序列,则将整个子字符串n视为大字符串中的单个数字.
现在,假设n是199319941995,您在上一步中发现序列中的第一个数字是1993.剩下的工作是计算输入String中数字1993的索引.您知道单位数字采用1 * 9索引.两位数字取2 * 90索引.三位数代表3 * 900索引. 1000和1993之间的3位数字采用4 * 993索引.因此1993年的索引是1 * 9 2 * 90 3 * 900 4 * 993,这是子字符串199319941995的第一个索引.
标签:indexof,sequence,string,java
来源: https://codeday.me/bug/20191025/1931139.html
java 字符串索引从0开始_无限字符串中的字符串的第一个索引-Java相关推荐
- python字符串去掉空行_从python中的字符串中删除空格
python字符串去掉空行 如何在python中删除字符串中的空格 (How to remove whitespaces in a string in python) str.lstrip()str. ...
- python中字符串类型的encode()方法_第五章 Python字符串常用方法详解
5.1 Python字符串拼接(包含字符串拼接数字) 在 Python中拼接(连接)字符串很简单,可以直接将两个字符串紧挨着写在一起,具体格式为: strname = "str1" ...
- java dos编译命令是什么_在DOS命令行状态下,如果源程序HelloWorld.java在当前目录下,那么编译该程序的命令是()...
[单选题]下列行为中,属于绝对商行为的是 [填空题]汽车故障的变化规律可分为3个阶段,早期故障期. 和 . [填空题]无分电器点火线圈与一般点火线圈不同,其 与 没有连接,为互感作用. [简答题]练习 ...
- python删除字符串中重复字符_从Python中删除字符串标点符号的最佳方法
似乎有一个比以下更简单的方法: 1 2 3import string s ="string. With. Punctuation?" # Sample string out = s ...
- python字符串说法错误的是_以下选项中,关于Python字符串的描述错误的
以下选项中,关于Python字符串的描述错误的 答:Python字符串提供区间访问方式,采用[N:M]格式,表示字符串中从N到M的索引子字符串(包含N和M) 寒武纪生物大爆发的原因可能是 答:间断平衡 ...
- mysql查找内容某字符串出现的次数_查找MySQL中特定字符串出现的次数?
使用LENGTH()此.让我们首先创建一个表-mysql> create table DemoTable -> ( -> Value text -> ); 使用插入命令在表中插 ...
- python删除字符串中的字母_在Python中删除字符串中的大写字母
我想写一个函数消除一个字符串和2个可选参数.第一个可选参数(bad_characters)取一个字母,第三个参数(case_sensitive)取一个布尔值.该函数应该接受一个字符串s并移除bad_c ...
- c ++比较字符串是否相等_在C ++中比较字符串的3种方法
c ++比较字符串是否相等 In this tutorial, we'll learn methods to compare strings in C++. Consider a scenario w ...
- 在字符串中标红_在C ++中标记字符串
&在字符串中标红 In this article, we'll take a look at how we can tokenize a C++ String. 在本文中,我们将研究如何标记C ...
最新文章
- cannot import name 'get_all_providers'
- 成功解决成功解决return _iterencode(o, 0) ValueError: Circular reference detected
- 做shopee找代运营,如何判断一家代运营公司是否靠谱?
- 万分之二用百分之怎么表示_万分之几用百分符号怎么表示 万分之五怎么写?0.5%...
- 【虚拟化】docker创建mysql镜像,docker内部操作mysql
- opengl加载显示3D模型IFC类型文件
- django建表报错
- python socket epoll
- 整合nagios+cacti遇到问题及解决办法
- slice matlab,Matlab画图之slice命令
- ubuntu虚拟机使用笔记——9、vmware卸载,重新安装ubuntu,重安后不能共享文件
- JS实现页面保存为图片
- 软件测试面试题之自动化测试题大合集(上)
- 《笨办法学python》第39课—— 列表的操作
- sed搜索某行在行末追加_sed在行首或者行尾添加内容
- Jquery实现AJAX异步通信
- 【Shading】Shadow Mapping 阴影映射
- 递推最小二乘RLS推导
- Wed APIS-Window对象、本地存储、数组的map()方法、数组的join()方法
- 什么是机器学习,机器学习的用途?
热门文章
- Lua 中写 C 扩展库时用到的一些技巧
- Asp.net MVC3.0 入门指南 6 审视编辑方法和视图
- 协程分析之 context 上下文切换
- 84.负载均衡哈希算法:ip_hash与hash模块
- 计算机科学与技术a类学科,清华大学a类学科有哪些?附清华a类学科名单
- python自助电影售票机_手把手教你用python抢票回家过年(代码简单)
- 猜数游戏软件的设计开发系统测试参考
- linux硬盘类型怎么选,如何选择linux系统安装类型
- Python+OpenCV:特征匹配(Feature Matching)
- 一张图了解浏览器渲染页面的过程