`
zhaolei415
  • 浏览: 168875 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

字符串操作-字符串移位

c 
阅读更多
人民网搜索面试---字符串移动(字符串为*号和26个字母的任意组合,把*号都移动到最左侧,把字母移到最右侧并保持相对顺序不变),要求时间和空间复杂度最小


#include <iostream>
#include <cstring>


using namespace std;

char* moveStar(char *s){
	if(!s) return NULL;
	int len = strlen(s);
	int starCount = 0;
	for(int i=len-1;i>=0;--i){
		if(s[i]=='*'){
			++starCount;
		}else if(starCount>0){
			 s[i+starCount] = s[i];
		}
	}
	for(int i=0;i<starCount;++i){
		s[i]='*';
	}
	return s;
}

int main()
{

	char s[7] = "AB*C*D";
	moveStar(s);
	for(int i=0;i<strlen(s);i++)
	cout<<s[i]<<endl;
    return 0;
}

分享到:
评论

相关推荐

    C语言中关于字符串左右循环移位的问题

    C语言中关于字符串左右循环移位的问题 C语言中关于字符串左右循环移位的问题是一个经典的编程题型,今天我们将对其进行详解,并给出两种方法求解。 首先,让我们来解决字符串循环右移的问题。方法一:利用已有的...

    数据结构和算法:字符串

    字符串的基本操作包括但不限于查询、修改、插入、删除字符以及遍历等。字符串处理问题在面试中常出现,熟练掌握一些基本算法对于解决相关问题很有帮助。本篇文章将详细探讨字符串操作相关的知识点,重点讲述字符串...

    数据结构-字符串.pptx

    字符串是计算机科学中的一种基本数据结构,用于存储和操作文本信息。在编程语言中,字符串通常是由一个或多个字符组成的序列。字符串的处理涉及到多种算法和技术,这些在解决实际问题时至关重要,特别是在文本处理、...

    python-leetcode面试题解之第249题移位字符串分组.zip

    题目249通常会要求我们对一组字符串进行操作,这些字符串由小写字母组成,且每个字符串都可以看作是在原字符串基础上向右移动了某个固定的步数(移位)。目标可能是将这些字符串根据它们的移位情况进行分组,使得同...

    基于字符串移位包含的问题详解

    字符串移位包含问题是一个经典的计算机科学问题,主要涉及到字符串处理和算法设计。在这个问题中,我们需要判断一个字符串`s1`是否可以通过循环移位得到另一个字符串`s2`的子串。循环移位,也称为旋转字符串,指的是...

    腾讯笔试题--字符移位

    小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。...对于每组数据,输出移位后的字符串。 输入例子: AkleBiCeilD 输出例子: kleieilABCD

    关于字符串包含的问题

    10. **字符串拷贝**:涉及字符串的复制操作,可以使用C++的string类或C语言中的strcpy函数。 这些方法各有优劣,具体选择应根据实际情况,如数据规模、内存限制、时间复杂度要求等因素综合考虑。在面试或实际编程中...

    c++字符串偏移

    编程:输入一个字符串(不超过200字符),能够将全部字符进行偏移变换,并能够还原。如偏移为1,输入串为 "abcd2345",则变换并输出为"bcde3456"。

    第五章 字符串和文件

    - **调整大小**:使用移位工具拖拽边角来改变字符串控件的大小。 **1.3 字符串功能函数** - **1.3.1 Format Into String** - **功能**:将数值和字符串格式化为一个输出字符串。 - **使用**:在本章节的练习中,...

    使用模运算改进的字符串匹配Rabin-Karp算法

    同时,为了解决模运算后的哈希冲突,我们还需要一种叫做移位和模反演的技巧,确保在移动字符串位置后,新的哈希值可以通过旧的哈希值快速计算出来。 在C++编程中,实现这个算法需要考虑类型限制和溢出问题。通常,...

    AES.rar_AES 任意_AES任意字符串_字符串aes加密_字符串加密

    在本主题中,我们关注的是AES算法在处理任意长度字符串时的应用。通常,对于任意长度的输入字符串,我们需要进行预处理,以确保它们能够适应AES的块大小。一种常见的方法是采用填充方式,如PKCS7填充,使得输入数据...

    Java算法练习-字符串移位练习题

    [Java]算法练习-字符串移位练习题

    字符串的最大公因子(substr+辗转相除)1

    ### 步骤1:检查字符串是否互为对方的循环移位 ```cpp if((str1 + str2) != (str2 + str1)) return ""; ``` 这一步检查 `str1` 是否可以通过将 `str2` 循环移位后与之相等。如果不能,那么它们没有公共因子,返回空...

    AES加解密字符串(字符串大小任意)

    2. **API接口**:可能定义了用于加密和解密字符串的函数,如`encrypt_string()`和`decrypt_string()`,这两个函数通常接受明文字符串和密钥作为输入,返回加密后的结果或解密后的明文。 3. **示例代码**:可能包含...

    微机原理课程设计之字符串动画显示

    这个项目展示了如何在汇编语言环境下实现字符串的动态显示,以及如何利用位移操作(左移位和右移位)创建动画效果。在实际操作中,汇编语言编程需要对处理器的工作方式有深入理解,包括段寄存器的使用、BIOS 服务...

    c++字符串加密解密

    在C++编程中,字符串加密和解密是信息安全领域中的重要技术,主要用于保护数据的隐私和安全性。本项目涉及的是DES(Data Encryption Standard)加密算法的实现,这是一种经典的对称加密算法,广泛应用于数据的加密...

    VB 字符串整体循环移位函数

    自定义字符串整体循环移位

    精选_Ring0内核层下字符串基础操作之任意进制的整型数据和字符串互转_源码打包

    例如,将二进制整数转换为字符串,我们需要循环右移位,逐位存储到字符数组中;反之,从字符串解析二进制数则需遍历字符,逐位计算并累加。 标签"精选_源码打包"提示我们,这个压缩包可能包含了实现这些功能的源...

    C++ 计算字符串md5_16和md5_32

    在C++中,这通常涉及到对字符串进行二进制操作、使用位运算以及调用加密库等技术。 标签中的“**c++**”表明我们关注的是C++语言,“**c**”可能暗示了部分C语言的语法或库可以用于C++中,“**md5**”则是我们讨论...

    205 字符串字母移位 C语言源代码文件

    205 字符串字母移位 C语言源代码文件

Global site tag (gtag.js) - Google Analytics