Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >确定字符移动数以得到单词

确定字符移动数以得到单词
EN

Stack Overflow用户
提问于 2014-09-18 22:27:29
回答 1查看 57关注 0票数 1

假设你得到了一个词

向日葵

您只能对它执行一种操作类型,选择一个字符并将其移动到前面。因此,例如,如果你选择'f',这个词将是"fsunlower“。

您可以进行一系列这样的操作。

  1. fsunlower (把f移到前面)
  2. wfsunloer (向前移动)
  3. fwsunloer (再次将f移到前面)

问题是,给定派生词和原始单词,得到所需的最小操作数。因此,如果输入字符串为"fwsunloer",“向日葵”,则输出为3。

EN

回答 1

Stack Overflow用户

发布于 2014-09-18 22:41:27

这个问题等价于:给定字符串A和B,找到字符串A的最长后缀,即字符串B的sub-sequence。因为,如果我们知道哪些n个字符需要移动,我们只需要n步。因此,我们需要找到的是不需要移动的最大字符数,这相当于A中最长的后缀。

因此,对于给定的示例,最长的后缀是sunlor

Java代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[] args) {
    System.out.println(minOp("ewfsunlor", "sunflower"));
}

public static int minOp(String A, String B) {
    int n = A.length() - 1;//Start from the end of String A;
    int pos = B.length();
    int result = 0;
    while (n >= 0) {
        int nxt = -1;
        for (int i = pos - 1; i >= 0; i--) {
            if (B.charAt(i) == A.charAt(n)) {
                nxt = i;
                break;
            }
        }
        if (nxt == -1) {
            break;
        }
        result++;
        pos = nxt;
        n--;
    }
    return B.length() - result;
}

结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
3

具有n的时间复杂度O(n)是字符串A的长度。

注意事项:该算法基于A和B包含相同字符集的假设。否则,您需要在使用该函数之前检查它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25927648

复制
相关文章
使用 JavaScript 统计段落,单词,字符:Countable
Countable 是一个 JavaScript 函数,可以用来统计某个 HTML 元素中包含文本的段落数、单词数和字符数。不依赖于其他库,体积非常小。
Denis
2023/04/14
9080
使用 JavaScript 统计段落,单词,字符:Countable
LeetCode 2131. 连接两字母单词得到的最长回文串
给你一个字符串数组 words 。words 中每个元素都是一个包含 两个 小写英文字母的单词。
Michael阿明
2022/03/10
2990
Java实现字符串单词反转
一.方法一 思想: 1.首先将字符串转换成字符数组,方便索引字符。 2.反转整个字符数组 3.反转每个单词,单词是如何划分的:维护一个单词的起始索引和结束索引i,j,分别表示一个单词的起始下标和结尾下标,对这个区间的字符数组进行反转。
lexingsen
2022/02/24
5180
反转字符串中的单词
单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。
狼啸风云
2023/10/07
2790
颠倒字符串中的单词
单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。
PHP开发工程师
2022/04/28
1.5K0
颠倒字符串中的单词
[oeasy]python0012_字符_character_chr函数_根据序号得到字符
​字符(character)回忆上次内容上次了解了ord函数这个函数可以通过字符得到序号那么可以反过来吗?通过序号得到字符可以吗?​编辑ord的逆运算chr有来就有回​编辑好像可以我们可以把 104 作为参数给到 函数chr()注意给的参数是数字 104而不是字符串"104"没有引号我们可以发现 ​​数字104​​ 和 ​​字符'h'​​ 是有关联的有两个单词了ordchr他们都是什么意思来着?🤔ord是ordinal 序号看一下帮助ordhelp(ord)​编辑看完之后可以q退回来​ord​​
oeasy
2022/11/09
3050
字符串移动
 晚上9点一同学求助,帮忙做一个C语言题目,本来也是懒得动,但看到同学那份焦急的心情,虽然完成了上面一个题目,谁知道这小子得寸进尺,说是样题,不是真题,现在抛出真题过来。晕。咋一看,还好这个题目简单。
用户4148957
2022/06/14
2260
字符串移动
50 - 得到文件中出现频率最高的字符
现在有一个文本文件,需要得到该文本文件中出现次数最多的字符,最后输出该字符和出现的次数,空白符除外 ''' 1. 读文件内容 2. 统计字符数 3. 求出现次数最多的字符 统计每一个字符在文件中出现的次数,然后每扫描到一个字符时,再更新当前出现次数最多的字符 ''' with open('files/readme.txt', 'r') as f: data = f.read() print(data) ''' kry: 在文本文件中出现的字符 value: int类型,表示key指定
ruochen
2021/05/29
5930
LeetCode - 反转字符串中的单词③
LeetCode第557题,难度是简单,一个月三周以前刷的题目。突然意识到,我真的已经又是一个月没有写过LeetCode了,又变懒了,勤奋果然大都是暂时的。
晓痴
2019/07/24
1.5K0
LeetCode - 反转字符串中的单词③
如何遍历字符串中的单词
一个字符串由很多单词组成,单词间以空格隔开,现在我想遍历这些单词,有什么好办法可以实现它么?
ClearSeve
2022/02/10
3.2K0
如何为Kafka集群确定合适的分区数以及分区数过多带来的弊端
通过之前的文章《Kafka分区分配策略》和《Kafka高性能揭秘》,我们了解到:Kafka高吞吐量的原因之一就是通过partition将topic中的消息保存到Kafka集群中不同的broker中。无论是Kafka的producer,还是consumer都可以并发操作topic中的partition,因此partition是Kafka并行度调优的最小单元。
大数据学习与分享
2020/11/17
2.8K2
算法-反转字符串与反转单词
该文介绍了如何反转字符串和反转单词,并对字符串反转问题进行了分析,提出了一些优化方案。同时,对于反转单词的问题,也给出了解决方案。最后,给出了反转字符串的完整代码。
chaibubble
2018/01/02
1.4K0
每日算法刷题Day8-统计最长连续字符、最长单词、倒排单词
求一个字符串中最长的连续出现的字符,输出该字符及其出现次数,字符串中无空白字符(空格、回车和 tabtab),如果这样的字符不止一个,则输出第一个。
timerring
2022/09/27
2830
每日算法刷题Day8-统计最长连续字符、最长单词、倒排单词
控制台字符移动
刚才有网友问能否实现控制台内字符的移动,以前也未曾接触过,不过百度之后发现原理很简单,就是清空之后再重新绘制即可,简单记录之,方便以后使用。 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <conio.h> 4 #include <time.h> 5 #include <windows.h> 6 7 void Move(int position) 8 { 9 int i = 0; 10 system( "cls
魏守峰
2018/04/28
1.1K0
leetcode:557 反转字符串中的单词|||
题目就不用我讲解了把,垃圾题目。 思路:字符串先分割为什么分割? 因为后面要使用的函数都是数组的函数所以要。。。。。, 为什么使用的都是数组的函数? 因为字符串中没有办法可以反转的哈。 经过split过程了后的就是字符串的数组了(注意全部才是字符串数组,单独一个元素还是字符串哈),以空格为分割线,每一个都是字符串。 然后是map,为什么使用map? 兄弟们,这是用es6写的,当然用map了呀。 也可以使用foreach遍历哦. 然后是使用split函数为什么? 因为这是字符串啊,数组才有方法反转的。 然后是反转,然后是转换成字符串,为什么一定要转换成字符串? 因为s本来就是字符串的呀,难道要给数组给他吗?是吧,兄弟们。 注意一下这里:为什么不直接在map里面直接最后join(" ");呢? 因为里面反转的都是一个一个单词,不是直接反转整个字符串数组啊啊A1
贵哥的编程之路
2020/10/28
1.3K0
php案例 计算字符串单词数量
作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主 文章目录 什么是单词? cyg.php ---- 什么是单词? 举个例子: aaa aaa aaa 这就是三个单词。 cyg.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> 计算字符串单词数量 <
贵哥的编程之路
2022/09/23
3770
php案例 计算字符串单词数量
golang刷leetcode 字符串(3)单词搜索
单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。
golangLeetcode
2022/08/02
3140
151. 翻转字符串里的单词
给定一个字符串,逐个翻转字符串中的每个单词。 示例: 输入: "the sky is blue", 输出: "blue is sky the". 说明: 无空格字符构成一个单词。 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。 进阶: 请选用C语言的用户尝试使用 O(1) 空间复杂度的原地解法。 解:反转字符串的变种,反转字符串有很多方法,可以使用栈、异或操作等。 public class Solution {
张伦聪zhangluncong
2022/10/26
4580
统计字符串中的单词数目
//统计字符串中的单词数目——统计字符串中单词的数目,更复杂的话从一个文本中读出字符串并生成单词数目统计结果。 /* Test my2test,12test...?tesst hehe,dsf..e3
_gongluck
2018/03/08
1.7K0
点击加载更多

相似问题

确定字符串是否包含单词

40

确定组成单词的各个unicode字符

10

在特殊字符之前只得到单词

410

得到带有字符的特殊单词的乘积

15

移动到以字符开头的单词

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文